November 19, 2019 Re: Why same pointer type for GC and manual memory? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Basile B. | On Friday, 15 November 2019 at 11:32:07 UTC, Basile B. wrote: > > TBH I see your point but D is a system programming language. Even if there's a GC you can also do Manual Memory Mangement (sometimes you'll see "MMM "to refer to that in the forums), RC, and you can also write custom machine code in asm blocks. > > In most of the case, if you just stick to the GC way, it'll be alright, even if pointers are actual machine pointers, i.e usable in asm blocks ;) > > Recently some guys have discovered however that an aggressive anti virus scanner could cause problems... > > Anyway, just to say, D produces machine code and doesn't requires a VM... if you need fat pointers for a custom memory management, free to you. > > I don't think this will ever change. Nim which is a systems programming language handles the GC part nicely. With Nim you can plug and play many different types of GC types. https://nim-lang.org/docs/gc.html --gc:refc Deferred reference counting with cycle detection, thread local heap, default. --gc:markAndSweep Mark-And-Sweep based garbage collector, thread local heap. --gc:boehm Boehm based garbage collector, stop-the-world, shared heap. --gc:go Go lang like garbage collector, stop-the-world, shared heap. --gc:regions Stack based garbage collector. --gc:none No garbage collector. so the architecture of Nim allows this just by a compiler switch. Would D even support reference counting as Nim defaults to with the current mixup of raw and GC pointers? |
Copyright © 1999-2021 by the D Language Foundation