In the DLF's October 2025 monthly meeting, we had a final discussion about DIP 1052, "Editions. The discussion ended in agreement to make three changes to the DIP before sending it onward to Formal Assessment:
- clarify that the
-Eswitch does not modify the import path; - specify that an edition's identifier is always the year in which it is released;
- remove the
__EDITION__special keyword and add a comment explaining why.
After making the changes, Walter and Atila reviewed it one last time to ensure it fits what we had discussed. They both then gave the thumbs up to mark it as 'Accepted'.
The rationale for accepting it: we need a way to evolve the language while minimizing the pain for users when updating older code, i.e., break things without breaking things.
Editions will allow us more room to break things as we move the language forward with less need to worry about existing code. It doesn't completely eliminate the potential for problems, but does give us more freedom.
Users will be able to update to new compiler releases to take advantage of non-breaking changes and bug fixes and still choose not to upgrade their code to the latest edition with the breaking changes unless and until they are ready. Hopefully, the days of freezing on a specific compiler release because a new feature breaks your code will be behind us.
Thanks to everyone who provided feedback in the forum discussions about this DIP, and to all the members of the core team who helped shape the DIP into its final form.
Permalink
Reply