Please be more careful when changing the language behavior
mw
mingwu at gmail.com
Thu Jun 4 06:47:16 UTC 2020
On Wednesday, 3 June 2020 at 08:11:12 UTC, Panke wrote:
> Would be a schema as described here [1] be possible?
>
> In a nutshell each breaking change is introduced with a switch
> named --incompatible_<name> that activates it. The default is
> to be turned off and this is quite similar to what we have with
> -preview=. After some time the default becomes on and you have
> to explicitly disable it, if you want to keep using your old
> code.
>
> The crucial difference to what we do is: Every breaking change
> is guaranteed to have an migration path that allows you to
> change your code in a way that it works with both
> --incompatible_<name>=on and --incompatible_<name>=off. So you
> do not have to update your complete codebase on every breaking
> change and the recommendation is to never use --incompatible in
> your production setup.
>
>
> [1]
> https://docs.bazel.build/versions/master/backward-compatibility.html
Yes, I think that's another option we can consider.
Let the user explicitly choose on the command-line, for each
feature s/he want to use.
And quite interesting, this method (way of thinking) is exactly
the key idea how Eiffel solved the multiple inheritance
difficulty, while other language didn't: i.e. deal with each
feature individually (in Eiffel), instead of all-or-nothing
approach (in other languages). (This is a bit off-topic on this
thread, I will start a new thread about multiple inheritance in
Eiffel).
More information about the Digitalmars-d
mailing list