On Friday, 2 May 2014 at 16:20:47 UTC, Andrei Alexandrescu wrote:
On 5/2/14, 9:04 AM, fra wrote:
On Wednesday, 30 April 2014 at 20:21:33 UTC, Andrei
Alexandrescu wrote:
I think there's no need to argue that in this community. The
GC never
guarantees calling destructors even today, so this decision
would be
just a point in the definition space (albeit an extreme one).
I think I (we) need a bit of clarification.
Docs in http://dlang.org/class.html#destructors states that:
"The
garbage collector calls the destructor function when the
object is
deleted."
As far as I understand, this means that destructors are always
called
when an instance is collected. Is this right?
Doesn't this mean that destructors are guaranteed to run for
unreferenced objects if we force the GC to do a full collect
cycle?
False pointers make it seem like unreferenced objects are in
fact referenced, so fewer destructors will run than there
should. -- Andrei
Yeah, you have to read the "fine print": "collection implies
destruction" *but* "no guarantees the collection will actually
ever happen".