Tracing API?

Benjamin Thaut code at benjamin-thaut.de
Sun Dec 22 05:50:02 PST 2013


Am 16.12.2013 19:21, schrieb Andrei Alexandrescu:
>
> What parts of the book support that opinion?
>
>> Generally I think it is a good idea to think about tracing and identify
>> all problems the language still has with propper tracing. Because it
>> seems that this has not been done in the past.
>>
>> Tracing alone is also not enough. There would also be a need for a
>> gc-stop point kind of api that inserts points where the GC can stop the
>> program without corrupting it.
>
> That is correct. Such would come in the form of guarantees of when it's
> safe to initiate, pause, and resume iteration.
>
>
> Andrei
>

Well they talk about all these issues in Chapter 11 where they give 
different ways to implement finding pointers, read / write barriers etc.
They mention several times, that the implementation highly depends on 
the type of Collector choosen and on the architecture (e.g. can you 
afford to waste a CPU register?) In all other parts of the book they 
constantly talk about "balancing the cost between the mutator and the 
collector" also depending on the type of collector choosen.

In my opinion we should first decide on the type of collector to be 
implemented and then implement the subsystems needed by that collector, 
in a way that optimally serves that collector. If someone wants to 
implement another type of collector, they will have to work with whats 
there. In my opinion doing a to generalized solution will lead to bad 
performance and unneccessary issues when implementing the reference 
collector.

Kind Regards
Benjamin Thaut


More information about the Digitalmars-d mailing list