DIP1028 and phobos

Uknown sireeshkodali1 at gmail.com
Sat May 23 13:48:15 UTC 2020


On Saturday, 23 May 2020 at 12:00:40 UTC, Steven Schveighoffer 
wrote:
> On 5/23/20 1:16 AM, Uknown wrote:
>> With DIP 1028 finally being accepted, we now have @safe by 
>> default. If we ignore the extern function controversies around 
>> the DIP for a second, its worth looking at some of the other 
>> issues that DIP 1028 brings.
>> 
>> Consider the following trivial code:
>> 
>> void main(string args[]) @safe
>> {
>>      import std.stdio : stderr;
>>      if (args.length != 2) {
>>          stderr.writeln("usage: %s filename");
>>          return;
>>      }
>> }
>> 
>> This does not compile, because stderr, stdin and stdout are 
>> all marked @system. Technically, I understand why they are 
>> marked @system, but practically, most people would expect 
>> something like this to Just Work, without having to mark main 
>> @system, or use () @trusted {...}();
>
> They shouldn't be @system. It's probably just an example of 
> lazy programmers not fixing stuff that hasn't complained yet.

They were marked @system because the are global and apparently 
not thread safe in some cases. I think there was a PR to fix it a 
long time ago, but it was put on hold for shared to be fixed

>> 
>> I think given DIP 1000 and DIP 1028, its worth looking into 
>> phobos and reviewing other "trivial" stuff that should work 
>> with @safe but doesn't, and coming up with ways to fix them.
>
> For sure, we will not be turning on safe by default until 
> Phobos and druntime are made to work with it.
>
> -Steve

Yeah, I just think its worth documenting all these, so its easy 
to see what's still to be done. Some of the fixes might be easy, 
so it could be even be good "beginner patches" stuff


More information about the Digitalmars-d mailing list