DIP 1028---Make @safe the Default---Community Review Round 1

Arine arine123445128843 at gmail.com
Sat Jan 4 16:11:20 UTC 2020


On Friday, 3 January 2020 at 22:59:53 UTC, Walter Bright wrote:
> On 1/3/2020 5:57 AM, Arine wrote:
>> Then this would be better served as an opt in feature.
>
> It will be opt-in for a time, that's why it will be enabled 
> with -preview=safedefault

No one is going to really use that, they'll just wait til it's 
required. I'm already dreading some of the deprecations that 
there already are. It'll break my code and the fixes for it will 
make it worse than it was. At which point when it becomes an 
error I'll probably just stick with an older version, or build my 
own variant with a patch to turn it off.

>> This is going to be a big breaking change, and if you are 
>> going to do the same thing with `nothrow`, that's way too much 
>> breakage for very little benefit just to follow a trend.
>
> There are compelling reasons for nothrow by default. I suggest 
> deferring this discussion until the DIP is put forward for 
> review.
>
>
>> Especially if steps aren't going to be taken to ensure it is 
>> easy to maintain backwards compatibility. As someone else 
>> mentions
>> 
>> @system:
>> 
>> does not give the same behavior and will still break code.
>
> It's still easy to deal with.

It's more work. It doesn't matter if it is easy. I worked for a 
company where one of the developers REALLLY hated warnings. So 
much so that he changed all the variable and class names because 
the C# compiler was giving warnings that the style didn't match 
the standard. Part of the problem was the serialization used 
reflection so changing the variable/class names was a breaking 
change for this API. This API interfaced with our software and it 
was the only way to interface with our software. The only way to 
get data into our software to use was through this API. So now 
for our customers to use our software they had to wait for an 
updated version with our partners. The thing is, the partners 
were telling their customers to not upgrade to the newest version 
of our software. It was a mess for our customers and the 
companies we partnered with. He didn't listen to reason, having 
no warnings was more important to him, and another companies 
problem was their problem.

Sure changing the names is easy, but it's boring tedious grunt 
work that's a waste of time for very little to no benefit.

>> There's probably already an issue filed for it. It comes up 
>> often. I don't have the time right now to search through tens 
>> of thousands of unmanaged issues for you. I already gave an 
>> example in my preview post.
>
> Spending time guessing and speculating on what it might be does 
> a disservice to those who do spend the time filing issues, on 
> which I and others do spend effort to address.
>
> > tens of thousands of unmanaged issues
>
> This is why there are bugzilla keywords for categorizing 
> issues, like `safe` for all safety related issues:
>
> https://issues.dlang.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&keywords=safe&keywords_type=allwords&list_id=229608&query_format=advanced

That doesn't mean those categorizations are used. No body is 
ensuring they are set. Anyone can set them, they can set them 
incorrectly, no one checks for duplicates, no one is making sure 
that an issue is even relevant or accomplish-able. There's issues 
that are 5+ years old, some of them with no comments. Some of 
them with comments promising to get it fixed. I don't know how 
you can point to a list of categories and just because they 
exist, claim that the issue list isn't an unmanaged mess.


More information about the Digitalmars-d mailing list