Memory allocation purity

David Nadlinger via Digitalmars-d digitalmars-d at puremagic.com
Thu May 15 07:42:00 PDT 2014


On Thursday, 15 May 2014 at 13:42:58 UTC, Steven Schveighoffer 
wrote:
> On Thu, 15 May 2014 09:24:54 -0400, Ola Fosheim Grøstad 
> <ola.fosheim.grostad+dlang at gmail.com> wrote:
>> That's the wrong attitude to take when it comes to the 
>> compiler and runtime.
>
> There are always ways around the guarantees. This one isn't as 
> detectable, since there is no "red-flag" cast or attribute. But 
> I see no utility in such code.

I have to agree with Ola here. If you write a piece of pure, 
@safe code, there should be no way for compiler optimizations to 
make your code behave differently.

This is not only because implicitly allowing unsafe code would be 
against the design philosophy behind D, but also as attribute 
inference might tag functions as pure without the programmer 
explicitly specifying so.

> In any case, the alternative is to have D pure functions avoid 
> using pointers. It's as drastic as that.

I'd suspect that it is enough to disallow using the content of 
pointers explicitly, i.e. as a sequence of bytes instead of just 
a handle to an object.

David


More information about the Digitalmars-d mailing list