Transitions to new language semantics

WebFreak001 d.forum at webfreak.org
Fri Jun 11 11:50:23 UTC 2021


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.


More information about the Digitalmars-d mailing list