Editions
jmh530
john.michael.hall at gmail.com
Tue Apr 1 16:47:09 UTC 2025
On Tuesday, 1 April 2025 at 16:21:59 UTC, Atila Neves wrote:
> https://github.com/atilaneves/DIPs/blob/editions/editions.md
Glad to see you are still working on this.
Two lines might need some clarification:
1) "One possibly way to bound this complexity could be to only
support the last N editions, for N < 5."
2) "The editions feature is explicitly designed with the goal of
not introducing any breaking changes or deprecations. Existing D
code that does not opt-in will continue to compile as behave as
before."
My reading is that if you don't opt-in to a specific edition,
then you use the current edition. So #2 is a little confusing
because if new editions introduce breaking changes, then you have
to opt-in to use the prior edition to avoid the breakage.
If you have opted-in to editions and you are only keeping around
the last N editions, then when the number of editions is larger
than N, support for initial editions will get dropped. This also
implies that there will be breaking changes/deprecations.
If you really want to avoid breaking changes/deprecations, you
can also keep last N editions plus the initial edition. You can
also optionally strike new ones every couple of years that are
meant to be kept around. That last bit depends on how often we
get these new editions.
In the paragraph below you say "current original edition" but I
think you just mean "current edition". The last sentence could
probably be folded into the first sentence, or otherwise
simplified since it covers a bit of what is in the first sentence.
Existing modules without this optional declaration but that have
a module declaration are considered to target the current
original edition. That is: they will be compiled as if the
editions feature did not exist. Modules without a module
declaration would be considered to be using the latest edition
unless the default edition is specified explicitly with a command
line argument.
More information about the dip.development
mailing list