DConf 2013 Day 1 Talk 6: Concurrent Garbage Collection for D by Leandro Lucarella

Juan Manuel Cabo juanmanuel.cabo at gmail.com
Fri May 24 11:30:54 PDT 2013


On Monday, 20 May 2013 at 12:50:23 UTC, Andrei Alexandrescu wrote:
> On reddit:
>
> http://www.reddit.com/r/programming/comments/1eovfu/dconf_2013_day_1_talk_6_concurrent_garbage/
>
>
> Enjoy! Discuss!! Vote!!!
>
> Andrei

I know that this is slightly offtopic, since the topic lately 
seems to be how to make the GC run generationally or with small 
footprint (don't stop the world, etc.).

I'd like to know if there is interest in a precise garbage 
collector. Anyways, here is how .NET does it:

http://blogs.msdn.com/b/abhinaba/archive/2009/03/03/back-to-basics-how-does-the-gc-find-object-references.aspx

It uses a mask stored in the type information of a class. D 
doesn't have this kind of type info in runtime I guess, but since 
D is on the verge of supporting multiple dlls/so, the time is now 
for a small modification to be made in the ABI to support this 
(if it is ever going to be made).

I know that in 64bits there is less of a problem with data as 
false pointers, but having a precise garbage collector would make 
two things possible:

   1) Defragmenting the heap by being able to move references.
   2) Easier to make a generational GC

The following link explains (in the first comment) how .NET 
distinguishes its own stack frames from non-managed stack frames, 
by adding a "cookie":

http://stackoverflow.com/questions/10669173/how-does-the-gc-update-references-after-compaction-occurs


--jm



More information about the Digitalmars-d-announce mailing list