DIP1028 - Rationale for accepting as is
Johannes Loher
johannes.loher at fg4f.de
Tue May 26 07:18:11 UTC 2020
On Tuesday, 26 May 2020 at 03:37:29 UTC, Walter Bright wrote:
> He can look at unattributed declarations.
The issue is, you have to know about that beforehand. In the
other situation, you explicitly get warned by the compiler (by
the compile error) that that something dangerous is going on.
Also, this means, there are now 2 different things to look for:
@trusted function declarations and unannotated extern(C)
declarations. The latter is much harder to search for (as Andrei
also noted in his reply) and it's just much simpler to only have
one escape hatch to look out for. It is also a very weird special
case. @safe means no memory corruption is possible except for any
@trusted declarations and any unannotated extern(C) declarations,
wrongfully @safe extern(C) declarations and wrongfully @trusted
extern(C) declarations. This just doesn’t sound right.
> The whole debate boils down to "is greenwashing better, more
> honest, more debuggable than leaving things unattributed?" No
> on all three accounts.
The question should be rephrased: „Is explicit greenwashing by
the developer better, more honest, more debuggable than implicit
greenwashing by the compiler?“ Yes for better and more debuggable
for the reasons that have already been mentioned so many times.
Regarding honesty: In your variant, the compiler is dishonest,
in the other variant, the developer is dishonest.
Just think about what the developer's reaction would be in the
situation I described in my last post, when he actually finds the
issue.
In your variant, the developer will be questioning why the
compiler did not help him at all with realizing that there might
be a problem. It is very likely that he blames the issue on the
compiler.
In the other variant, he will realize that this something he had
been warned about by the compiler and that he made a careless
wrong decision and that it is his own fault. In the future he
will be likely more careful when it comes to annotating stuff
with @trusted. So this even has an educational effect.
More information about the Digitalmars-d-announce
mailing list