On Sunday, 3 May 2015 at 08:02:37 UTC, Ola Fosheim Grøstad wrote:
On Sunday, 3 May 2015 at 04:46:52 UTC, ketmar wrote:
i don't thing that such pass in general worth the efforts. D programmers tend to use structures for local and short-lived objects. if i did `new`, chances are that i really want it on heap, and it will not be optimisable

This is where one have to decide whether to make a low/system level language with programmer control or a high level language with compiler control. If you have GC by default, then it makes a lot of sense to not even have a stack conceptually and do explicit allocations and stack allocation as an optimization.

But yeah, a system level language should allow threads to be terminated which would prevent destructors from being called, and since GC call destructors on another thread it will change program behaviour to turn GC allocations into stack allocations in general...


there's no guarantee GC allocated memory will _ever_ have their destructor ran, it's part of the spec.

The garbage collector is not guaranteed to run the destructor for all unreferenced objects.

Reply via email to