4 ms·
In 2017 or so when Rust editions were invented, the notion was that editions were primarily a "rallying point" (a way to make Rust's continuous release process
by mjw1007 5y ago
In 2017 or so when Rust editions were invented, the notion was that editions were primarily a "rallying point" (a way to make Rust's continuous release process feel more like Java's or C++'s), and only secondarily an (opt-in) change to the language itself.
See for example the summary at the top of https://rust-lang.github.io/rfcs/2052-epochs.html https://rust-lang.github.io/rfcs/2052-epochs.html
It seems to to me that that aspect has now been dropped: TFA simply says "Editions are a mechanism for opt-in changes that may otherwise pose backwards compatibility risk."
I'm not sure this change of direction has been officially announced anywhere, though.
(I think this is a good change: last time I saw cases of people asking questions like "How do I do foo in Rust 2018", and getting a mix of answers like "Nothing in Rust 2018 affects foo" and "Since Rust 1.20 you've been able to use std::foo::bar to do that".)
- steveklabnik 5y agoIt was discussed as part of the 2021 Edition RFC.
- tialaramex 5y agoInteresting. It mentions stuff like the library and documentation. When IntoIterator for arrays first stabilized (with the hack hiding into_iter() for backwards compatibility) I considered making all the documentation changes to use natural arrays in standard library examples, which of course would now be the obvious way to write it whereas previously it was ugly. I didn't do it (and now I have a job keeping me too busy) and I haven't gone back to look at examples to see if all/ most / some were updated to use arrays in the now natural way.
- nicoburns 5y agoThe 2018 was widely considered to be overly pressured (contrary to the usual Rust approach of shipping it when it’s ready), which led to burnt out compiler devs, and a bunch of people with unmet expectations. I think the approach to decouple Big Bang features from editions has been made in response to that.
- mjw1007 5y agoIt's hard to tell how much of the trouble with 2018 was due to the concept of having a major release with several things being updated together, and how much was due to the mistake of setting too early a deadline (by pre-announcing that it would be "Rust 2018" rather than "Rust 2019").
- kzrdude 5y ago2021 was explicitly a "nothing new" edition, at least.
- pornel 5y agoIt created confusion, because: • lumping marketing of cool features with an announcement of a few incompatible changes was easily misinterpreted as all new features requiring a new incompatible edition (while in fact almost all marketed features were already available in the old edition). • celebration of features developed in recent years under one big event sounded like all these features were brand new and released at once. For people who didn't follow Rust development, the announcement sounded like Rust suddenly made a lot of incompatible changes.