Dicebot on leaving D: It is anarchy driven development in all its glory.

Walter Bright newshound2 at digitalmars.com
Tue Sep 4 21:40:07 UTC 2018


On 9/4/2018 12:59 PM, Timon Gehr wrote:
>  [...]

Thanks for the great explanation! Not sure I thoroughly understand it, though.

> Therefore, D immutable/pure are both too strong and too weak: they prevent 
> @system code from implementing value representations that internally use 
> mutation (therefore D cannot implement its own runtime system, or alternatives 
> to it), and it does not prevent pure @safe code from leaking reference 
> identities of immutable value representations:
> 
> pure @safe naughty(immutable(int[]) xs){
>      return cast(long)xs.ptr;
> }
> 
> (In fact, it is equally bad that @safe weakly pure code can depend on the 
> address of mutable data.)

Would it make sense to disallow such casts in pure code?

What other adjustments would you suggest?


More information about the Digitalmars-d mailing list