DIP74 - where is at?

Ola Fosheim Grøstad via Digitalmars-d digitalmars-d at puremagic.com
Sun Oct 11 22:43:42 PDT 2015


On Sunday, 11 October 2015 at 23:46:42 UTC, Jonathan M Davis 
wrote:
> @safe isn't going anywhere. And it mostly works just fine. It's 
> primary flaw is that it's been done via blacklisting operations 
> rather than whitelisting them, but that doesn't stop it from 
> working. It just makes the implementation more error-prone.

Has nothing with whitelisting or blacklisting, that's basically 
the same thing for a finite set of features.

The real problem is that it cannot be assumed to work until 
proven correct, formally. So it does not give you anything more 
than a weak sanitizer would have done until such proofs have been 
verified. The fact that it is difficult to be convince oneself 
that you don't have holes reinforces this viewpoint.

If reasoning is difficult, you need proofs.

> Walter and Andrei are completely behind @safe and are going to 
> be in favor of fixing any holes in it that are found, not 
> getting rid of it. And I don't see any reason why that can't 
> work or that it's a bad idea.

This has been discussed before. @trusted regions can be correct 
in isolation, but it will make assumptions about what goes into 
@safe regions, so when the @safe region changes @trusted regions 
cannot assumed to be correct anymore. Therefore you need a prover 
to prove the @trusted region to remain safe whenever you change 
the surrounding @safe region. That means @trusted has to be truly 
exceptional and rare and impose verfiied restrictions on the 
assumptions it makes, which is not likely to happen.

This comes in conflict with the very nature of system level 
programming.



More information about the Digitalmars-d mailing list