Vision for the D language - stabilizing complexity?
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jul 11 11:00:20 PDT 2016
On 7/11/16 1:50 PM, deadalnix wrote:
> On Friday, 8 July 2016 at 19:26:59 UTC, Andrei Alexandrescu wrote:
>> On 07/08/2016 02:42 PM, deadalnix wrote:
>>> It is meaningless because sometime, you have A and B that are both safe
>>> on their own, but doing both is unsafe. In which case A or B need to be
>>> banned, but nothing allows to know which one. This isn't a bug, this is
>>> a failure to have a principled approach to safety.
>>
>> What would be a good example? Is there a bug report for it?
>>
>
> For instance:
>
> @safe
> int foo(int *iPtr) {
> return *iPtr;
> }
>
> @safe
> int bar(int[] iSlice) {
> return foo(iSlice.ptr);
> }
>
> foo assume that creating an invalid pointer is not safe, while bar
> assume that .ptr is safe as it doesn't access memory. If the slice's
> size is 0, that is not safe.
That was reported and being worked on:
https://github.com/dlang/dmd/pull/5860
-Steve
More information about the Digitalmars-d
mailing list