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