Safety, undefined behavior, @safe, @trusted

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Nov 5 13:59:12 PST 2009


dsimcha wrote:
> == 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)?

Perhaps a region could also be defined as a @trusted facility! So much 
good stuff to do, so little time...

Andrei



More information about the Digitalmars-d mailing list