The forked elephant in the room

Walter Bright newshound2 at digitalmars.com
Tue Jan 16 20:07:08 UTC 2024


In general, we've been much more willing to accept PRs that we can back out of 
if they don't turn out well.

For example, improvements to debug support, better code generation, stdatomic.d, 
fixing bugs, adding statistics to dmd's output, things like that.

Language changes, though, have a much higher bar. The risk there is people rely 
on it, and then we're stuck with it forever.

For example, `alias this` for classes. The semantics of it were never defined 
properly, and with many attempts at figuring what the correct semantics must be, 
never found one that anybody could defend. Worse, many people were using it for 
classes, and and relied on whatever the compiler did for it.

Hence, we did not want to deprecated it. Instead, we froze its current behavior, 
and I opposed any further additions to it and/or attempts to fix it. All I can 
do is just recommend people not use `alias this` in classes.

Rikki's proposal to do UAX31 identifiers I was initially opposed to, but upon 
reflection realized there was more risk in not doing it than doing it, and so 
full speed ahead, Rikki!


More information about the Digitalmars-d mailing list