dsimcha: 
> Reference counting is a pretty useful general technique for managing resources
> that can't have cycles and I think it makes sense to have a generic template
> for it instead of having people reimplement the same code over and over for
> file handles, large arrays of primitives that they allocate on the C heap and
> want freed deterministically, database connections, etc.  Does this sound
> worthwhile?

In real-world D programs the built-in GC is not enough, and forcing the 
programmer to re-invent everything is bad in a modern language. So putting 
alternative allocators (or resource managers as in your case) in Phobos will be 
necessary. For example I have D1 programs that become two times faster when I 
use a pool allocator.

Your reference counter can even contain a cycle detection&break routine.

One memory allocator (that can be used in D with memory from the C heap too) 
that I'd like to see in Phobos is a Hierarchical allocator, this is the 
simplest, really easy to use, you can allocate memory blocks with a tree 
topology and then free a whole subtree. It's easy to remember and use this API:
http://www.swapped.cc/halloc/
This is a more complex implementation, that's more complex to use too:
http://talloc.samba.org/

Bye,
bearophile

Reply via email to