Componentizing D's garbage collector

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Jan 11 12:44:59 PST 2014


On 1/11/14 3:52 AM, Benjamin Thaut wrote:
> Am 10.01.2014 20:40, schrieb Andrei Alexandrescu:
>> On 1/10/14 11:34 AM, Benjamin Thaut wrote:
>>> Am 10.01.2014 09:03, schrieb Andrei Alexandrescu:
>>>>
>>>> Destroy.
>>>>
>>>> Andrei
>>>
>>> Just one question. Did you read "the garbage collection handbook"?
>>
>> Yah, the new edition. Unfortunately I didn't find a lot of new stuff or
>> things that would help in a practical implementation.
>>
>> Andrei
>
> Very good,
>
> In my opinion it should be required for everyone who wants to
> participate in D's GC to read that book. So everyone has at least a
> basic understanding of the problem at Hand.
>
> But if you read the book I don't understand, why you simply declare the
> hardest problem, percise pointer discovery, as done. To be able to
> actually implement and test a GC that is not a reimplementation of what
> we already have one needs percise pointer discovery of _all_ pointers,
> write barriers and GC halting points. So please enlighten me why you
> simply decalre this done?

I'm not considering done as much as separable as a concern. All I'm 
saying is I hope to be able to separate the low-level part of 
discovering roots from the high-level part of marking used memory. BTW 
the way I see this done is "mostly precise", i.e. there will be at least 
for a while some words that will be handled conservatively (stack, 
registers, certain union members).

If there's anything in the GC book that suggest that would be 
impossible, please do let me know!


Andrei



More information about the Digitalmars-d mailing list