On 10/25/14 8:37 PM, Maxime Chevalier-Boisvert wrote:
Hello,
I was wondering if there have been updates regarding Andrei's
announcement that he would rewrite the D garbage collector. Is there any
kind of timeline for when a new version of the GC can be expected?
There is no timeline as of now. I'd need a good contiguous hunk of time
to dedicate to this, and the opportunity hasn't shown itself so far. But
I am optimistic I'll have the opportunity in the near future.
You should also know about the experimental Sociomantic GC for D2 which
has been recently announced: http://goo.gl/lOvttC
I also wanted to ask if there was an implementation of an object pool in
the standard library. If not, I'm wondering what the best way to
implement this is. Is there any way to overload new and destroy?
I was thinking of using the templated emplace operator from std.conv to
allocate class objects into a large flat array, and to derive
pool-allocated classes from a PoolObject base class. This base class
would contain linked list pointers to implement a free list, as well as
templated static methods to allocate and free the objects. Any advice
welcome.
My allocator (which has been mentioned) is a low-level backend for such
stuff. It's of good quality (i.e. fast) but very primitive in the sense
it has no porcelain on it - you need to instantiate the desired
combination yourself, call directly methods such as allocate() and
deallocate(), and traffic in void[].
Andrei