|Posted by WebFreak001|
in reply to Ola Fosheim Grøstad
Posted in reply to Ola Fosheim Grøstad
On Friday, 11 June 2021 at 11:27:03 UTC, Ola Fosheim Grøstad wrote:
> On Friday, 11 June 2021 at 07:36:47 UTC, Sönke Ludwig wrote:
>> This is something that should have been discussed already, but I can't remember whether that was actually the case, and it always bothers me every time there is friction with new DIP switches.
>> Right now, new language semantics are introduced using `-preview` and `-revert` switches, which unfortunately has a massive drawback:
> I am troubled in general by the implementation of incomplete solutions and making them gradually available.
> I would find it much more reassuring if a comprehensive solution was developed as a completely separate compiler branch. Basically have a stable branch (as is), and then a future branch that is considered unstable until all the corner cases have been ironed out. This also allows more heavy restructuring of compiler internals, like introducing an appropriate IR (which is needed for things like borrowing or ARC, if you want something solid).
> The cost of moving to a more complete solution after something incomplete has been made official could break the camel's back.
> The piece-by-piece approach is a slippery slope.
I think this is a good point.
Having an unstable compiler would allow removing things that don't work so well again, while having the advantage of having a big user base trying it out (and complaining about bugs) - though this could also be seen as inconvenience for users and authors e.g. when libraries are only working with an unstable branch or change in behavior with the unstable compiler.