Tracing API?

2013-12-15 Thread Andrei Alexandrescu
Hello, Seems like the low-level allocator is faring quite well. After quite a bit of thinking on the higher-level allocator, it seems to me I could attack the entire tracing/GC matter heads-on, possibly ultimately complementing or even providing an alternative (or more!) for the existing GC.

Re: Tracing API?

2013-12-15 Thread Jacob Carlborg
On 2013-12-16 05:15, Andrei Alexandrescu wrote: Hello, Seems like the low-level allocator is faring quite well. After quite a bit of thinking on the higher-level allocator, it seems to me I could attack the entire tracing/GC matter heads-on, possibly ultimately complementing or even providing a

Re: Tracing API?

2013-12-16 Thread Andrei Alexandrescu
On 12/15/13 11:41 PM, Jacob Carlborg wrote: On 2013-12-16 05:15, Andrei Alexandrescu wrote: [snip] Is this supposed to be used by druntime? If that's the case then there is potentially quite a lot of functionality from std.range and std.algorithm that is needed in druntime. How should that be h

Re: Tracing API?

2013-12-16 Thread Joseph Rushton Wakeling
On 16/12/13 05:15, Andrei Alexandrescu wrote: Seems like the low-level allocator is faring quite well. After quite a bit of thinking on the higher-level allocator, it seems to me I could attack the entire tracing/GC matter heads-on, possibly ultimately complementing or even providing an alternati

Re: Tracing API?

2013-12-16 Thread Benjamin Thaut
when it's okay to interrupt and resume iteration etc. Some APIs might possibly switch to internal iteration, i.e. the user passes a lambda that gets called for each root. What do you think? Andrei Reading "The Handbook of Garbage Collection" I got the opinion that doing a gen

Re: Tracing API?

2013-12-16 Thread Andrei Alexandrescu
On 12/16/13 10:18 AM, Benjamin Thaut wrote: Reading "The Handbook of Garbage Collection" I got the opinion that doing a generalized tracing API would be a bad idea. In the book they usually describe tracing as a specialized task depending on what type of collector is chosen. What pa

Re: Tracing API?

2013-12-19 Thread Martin Nowak
On 12/16/2013 05:15 AM, Andrei Alexandrescu wrote: There are several major roots - global memory, thread-local storage for all threads, and stack+registers. Currently all offer ranges of void*. Assuming we pull the work on precise GC, some of these root sources would offer ranges of void* + TypeI

Re: Tracing API?

2013-12-22 Thread Benjamin Thaut
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 al

Re: Tracing API?

2013-12-22 Thread Andrei Alexandrescu
On 12/22/13 5:50 AM, Benjamin Thaut wrote: 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