On 24.05.20 10:55, Walter Bright wrote:
I infer your position is the idea that putting @trusted on the
declarations isn't greenwashing, while @safe is.
...
It's only greenwashing if it's misleading. Putting @safe is a lie,
putting @trusted is honest.
I can't see a practical difference between:
@safe extern (C) void whatevs(parameters);
@trusted extern (C) void whatevs(parameters);
Both require that whatevs() provide a safe interface. The difference
between them is in the implementation of those functions, not the
interface. Since the D compiler cannot see those implementations, they
are immaterial to the compiler and user.
Sure, that's the point. Your @safe by default DIP in practice makes
certain declarations @trusted by default. @safe is a fine default.
@trusted is a horrible default. That's why your DIP claims it is for
@safe by default (and not @trusted by default). Except in this one weird
special case, where it introduces @trusted by default.