On 05.10.2017 21:40, Walter Bright wrote:
Right. But then the question becomes how much more complexity do we want
to add chasing that last percent of perfection?
For example, right now I'm in my 3rd day of attempting to resolve
https://issues.dlang.org/show_bug.cgi?id=17635
which is a regression brought about by layers and layers of fixes over
time for a seemingly simple issue - implicitly converting a unique
return from a pure function into an immutable.
...
Sounds like the code might need a rewrite.
For another example, it took Martin and I months to implement the new
import lookup scheme. It turned out to be fairly complicated, and there
were many regressions. There are probably still issues lurking in it.
...
Do you have some examples of why it is complicated? (I'm curious whether
there is a good way to simplify it.)
We need to keep the language rules simple enough to understand and
simple enough to implement, and there will be compromises with that.
It is however also important to not conflate implementation effort in
DMD due to evolvability issues with complexity of the feature. (Of
course, pragmatically, it will have some influence on the language
design, but ideally it should not.)