Cristian Vlasceanu wrote:
Do custom-allocated objects live on the GC-ed heap?
Not necessarily, e.g. you can malloc some memory and then create an object there.


I was afraid that may be the case, and it is perhaps not a good idea.

Early Managed C++ users found it difficult to deal with pointers to both managed and un-managed objects without being able to tell (just by a quick glance at the code) which is which -- the language subsequently changed, now ^ means managed pointer,and * means unmanaged. Managed C++ is a mess IMHO, because it tries to counsel into a happy marriage the GC paradigm with the old control-over-each-and-every-bit school (you can still get projects done in managed C++, but not before you bump into all the legacy boxes in the garage).

I find custom allocators being less useful than they used to -- the GC-managed heap plus a "tls" storage class should be sufficient for most needs.

D 2.0 should abandon the hope of being THE ULTIMATE language and content itself with being a good-enough, better than others, language. Otherwise it will either succumb into the schizophrenic fate of managed C++, or it will perpetually be a moving target, alienating its users.

This is why D .net does not support any of this custom allocator nonsense.


My two Global-Currency / 100

Cristi

Given those studies which show that dlmalloc out-performs all custom allocators except in some limited cases, aren't we better just limiting custom allocators to those special cases?

Reply via email to