all OS functions should be "nothrow @trusted @nogc"

Patrick Schluter via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 26 09:21:21 PDT 2017


On Wednesday, 26 July 2017 at 03:16:44 UTC, Walter Bright wrote:
> On 7/25/2017 6:09 PM, Steven Schveighoffer wrote:
>> Likewise, because D depends on hardware flagging of 
>> dereferencing null as a segfault, any platforms that *don't* 
>> have that for C also won't have it for D. And then @safe 
>> doesn't even work in D code either.
>
> I spent 10 years programming on DOS with zero memory 
> protection, and people have forgotten how awful that was. You 
> couldn't simply instrument the code with null pointer checks, 
> either, because then the program would be too big to fit.
>
> The solution finally appeared with the 286 DOS Extenders, which 
> ran in protected mode. I switched to doing all my development 
> under them, and would port to DOS only after passing all the 
> test suite.
>
> D is definitely predicated on having hardware memory protection.
>
> The C/C++ Standards are still hanging on to EBCDIC, 10 bit 
> bytes, non-IEEE floating point, etc. It's time to let that crap 
> go :-)
>
> One C++ programmer told me that C++ could handle any character 
> set. I asked him how RADIX50 was supported. Segfault! (I 
> learned to program on RADIX50 systems.)
>
> D made some fundamental decisions:
>
> * Unicode
> * 2's complement
> * 8 bit bytes
> * IEEE arithmetic
> * memory protection
> * fixed sizes for integral types
> * single pointer type
> * >= 32 bit processors
>
> that relegated a lot of junk to the dustbin of history. (It's 
> awful pretending to support that stuff. C and C++ pretend do, 
> but just about zero programs will actually work on such 
> systems, because there aren't any to try the code out on.)

And alone for that list of decision do I love you. I can not hear 
anymore all the crap about "undefined behaviour", "nasal demons" 
and optimizer that think that they are entitled to sabotage 
programs because he is an over zealous language lawyer in the C 
world practicing POOP (premature optimisation oriented 
programming).


More information about the Digitalmars-d mailing list