RFC: moving forward with @nogc Phobos

via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 1 04:00:10 PDT 2014


On Wednesday, 1 October 2014 at 09:52:46 UTC, Andrei Alexandrescu 
wrote:
> On 9/30/14, 12:10 PM, "Marc Schütz" <schuetzm at gmx.net>" wrote:
>> I would argue that GC is at its core _only_ a memory management
>> strategy. It just so happens that the one in D's runtime also 
>> comes with
>> an allocator, with which it is tightly integrated. In theory, 
>> a GC can
>> work with any (and multiple) allocators, and you could of 
>> course also
>> call GC.free() manually, because, as you say, management and 
>> allocation
>> are entirely distinct topics.
>
> I'm not very sure. A GC might need to interoperate closely with 
> the allocator. -- Andrei

It needs to know what to scan (ideally with type info), and which 
allocator to release memory with, but it doesn't need to be an 
allocator itself. It certainly helps with the implementation, but 
ideally there would be a well defined interface between 
allocators and GCs, so that both can be plugged in as desired, 
even with multiple GCs in parallel.


More information about the Digitalmars-d mailing list