DDMD as showcase?

Jakob Ovrum jakobovrum at gmail.com
Tue Feb 11 06:32:09 PST 2014


On Tuesday, 11 February 2014 at 10:29:58 UTC, thedeemon wrote:
> On Tuesday, 11 February 2014 at 04:36:28 UTC, Adam Wilson wrote:
>
>> The GC itself is an orthogonal issue to the compiler. The way 
>> I see it, once the compiler can output precise information 
>> about the heap, stack, and registers, you can build any GC you 
>> want without the compiler requiring any knowledge of the GC.
>
> If you want a fast GC it needs to be generational, i.e. most of 
> the times scan just a portion of heap where young objects live 
> (because most objects die young), not scan whole heap each time 
> (as in current D GC). However in a mutable language that 
> young/old generation split usually requires write barriers: 
> compiler must emit code differently: each time a pointer field 
> of a heap object is mutated it must check whether it's a link 
> from old gen to young gen and remember that link (or just mark 
> the page for scanning). So to have a generational GC in a 
> mutable language you need to change the codegen as well. At 
> least this is how most mature GCs work.

D code has different allocation patterns from Java and C#. In 
idiomatic D, young GC-allocated objects are probably much fewer.


More information about the Digitalmars-d mailing list