shared - i need it to be useful

Simen Kjærås simen.kjaras at gmail.com
Sun Oct 21 09:26:21 UTC 2018


On Sunday, 21 October 2018 at 09:04:34 UTC, Walter Bright wrote:
> On 10/20/2018 11:30 AM, Manu wrote:
>> You can write an invalid program in any imaginable number of 
>> ways;
>> that's just not an interesting discussion.
>
> What we're discussing is not an invalid program, but what 
> guarantees the type system can provide.
>
> D's current type system guarantees that a T* and a shared(T)* 
> do not point to the same memory location in @safe code.
>
> To get them to point to the same memory location, you've got to 
> dip into @system code, where *you* become responsible for 
> maintaining the guarantees.

The only difference between this and Manu's proposal is when you 
need to dip into @system code - in MP it's perfectly fine for the 
pointers to be equal, but when you want to read from or write to 
the address, you'll need to use @system. In other words, the dip 
into @system happens deeper in the codebase, meaning more code 
can be @safe.

--
   Simen


More information about the Digitalmars-d mailing list