Jarrett Billingsley wrote:
On Sat, Aug 8, 2009 at 9:42 AM, Andrei
Alexandrescu<seewebsiteforem...@erdani.org> wrote:
Jarrett Billingsley wrote:
On Sat, Aug 8, 2009 at 9:17 AM, Andrei
Alexandrescu<seewebsiteforem...@erdani.org> wrote:
FWIW, I am trying to convince Walter to not reclaim memory in delete, but
instead only call destructors. D continues C++'s mistake of conflating
lifetime termination with memory reclamation.
Why?  Instead of dangling pointers, you'd end up with pointers to
finalized objects, which would probably lead to harder-to-catch bugs
(since then you wouldn't even get a segfault).
Getting a segfault == lucky

And the alternative - using a "dead" object - is any better?

Yes. I've internalized this so deeply, I won't even debate it.

And what if you used it to try to delete a temporary array?  Yes, you
could use malloc/free for the temp array, but.. it just seems silly to
have to dip into C functions to do that.
Why? It's not a frequent need.

That's enough of a justification to change delete's behavior?

I believe it is.

I just don't know why it should be changed.  It's a blunt tool for
blunt uses.  When you delete something, you're telling the GC "I don't
need this anymore, *trust me*", so *not* freeing memory associated
with it seems silly.

We do have blunt tools for blunt uses: malloc and free. We don't need more of those.


Andrei

Reply via email to