On Thursday, 27 July 2017 at 14:45:03 UTC, Steven Schveighoffer wrote:
On 7/27/17 10:20 AM, Moritz Maxeiner wrote:
On Thursday, 27 July 2017 at 13:56:00 UTC, Steven Schveighoffer wrote:

I'm fine with saying libraries or platforms that do not segfault when accessing zero page are incompatible with @safe code.

So we can't have @safe in shared libraries on Linux? Because there's no way for the shared lib author to know what programs using it are going to do.

You can't guarantee @safe on such processes or systems. It has to be assumed by the compiler that your provided code doesn't happen.

It's not that we can't have @safe because of what someone might do, it's that @safe guarantees can only work if you don't do such things.

Which essentially means that any library written in @safe D exposing a C API needs to write in big fat red letters "Don't do this or you break our safety guarantees".


It is nice to be aware of these possibilities, since they could be an effective attack on D @safe code.

Well, yeah, that's the consequence of @safe correctness depending on UB always resulting in a crash.

Reply via email to