Why couldn't the Rust team maintain a spec and keep it up to date by changing it in the same pull request that changes a language feature in the compiler? This seems like mostly a matter of discipline.
Why couldn't the Rust team maintain a spec and keep it up to date by changing it in the same pull request that changes a language feature in the compiler? This seems like mostly a matter of discipline.
It's not that, it's that we take the idea of a spec very seriously. We want to have a spec that's extremely solid, and so there's a lot of foundational work that needs to be done first. That work has been ongoing. Not all specs are created equal, and good ones take a lot of time.
For comparison, C was created in 1972, and the first specification happened in 1989.
It need not be definitive. It would be quite reasonable to point out areas that aren't nailed down yet - this is also useful for the reader.
(Maybe it already is like that, but the disclaimers say it's not.)
I don't know if there is active work going towards making them more relaxed (NLL landed I believe). However, a ton of work has happened to get them out of the way as much as possible.
https://github.com/rust-lang/rfcs/blob/master/text/1636-docu...
As far as I can tell after adopting the rule they didn't proceed to enforce it.
We decided to relax this rule last year, and so instead, issues need to be filed. They then get filled in after. This has its own set of drawbacks.