Safety, undefined behavior, @safe, @trusted

dsimcha dsimcha at yahoo.com
Thu Nov 5 13:54:05 PST 2009


== Quote from Andrei Alexandrescu (SeeWebsiteForEmail at erdani.org)'s article
> Steven Schveighoffer wrote:
> > On Thu, 05 Nov 2009 16:30:42 -0500, Andrei Alexandrescu
> > <SeeWebsiteForEmail at erdani.org> wrote:
> >
> >>>  Most of the usages are like this:
> >>>  ubyte[1024] buffer;
> >>> functionThatNeedsBufferSpace(buffer);
> >>>  where functionThatNeedsBufferSpace takes a ubyte[], thereby taking
> >>> an address of the local data.
> >>>  So it's not explicit address taking, but it's the same thing under
> >>> the hood.  There always exists the potential for the stack reference
> >>> to escape.
> >>
> >> I see, thank you. I am confident that a trusted reap could be
> >> implemented in the standard library. (google reap)
> >
> > I did.  Couldn't find anything.
> Damn acronyms, sorry. Better results: reap memory allocation
> ftp://ftp.cs.utexas.edu/pub/emery/papers/reconsidering-custom.pdf
> Andrei

Ok, I understand the basic principle of a reap, but if it's going to convert to a
heap when you try to delete something, why not just improve the standard GC heap,
i.e. by making per-thread heaps?  If you're not going to delete stuff, why not
just use a regular old region or stack (not necessarily the call stack, but a
stack of some kind)?



More information about the Digitalmars-d mailing list