Comment by ben-schaaf
3 years ago
Probably the same for the others; in D you have RAII but destruction is only deterministic for stack/static variables. There isn't deterministic destruction for heap allocated stuff unless you count manually freeing.
Except the little detail that manual heap allocation with RAII is also a thing.
In which case you're no longer using the GC. You don't have GC & deterministic destruction, you have GC xor determinism.
That case isn't completely deterministic the way stack is: for the stack you just shift the SP which is constant time, while heap allocation and deallocation require manipulation of a small database, possibly including a system call.
This is a bit of hair splitting I admit.
It is as deterministic as RC algorithms, which is usually the point being discussed.
Yep, splitting hairs. :)