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