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