(Reposted/reworded from mailing list)
I’ve been messing about with what a (Debian) distro package for rust might look like, and thinking about how it compares to bootstrapping C/C++ on new architectures/distros.
Specifically, once we reach 1.0:
- Will the rust stage1 source be limited to using “stable” rust language features? (somewhat like gcc stage1 can’t use gcc-specific features)
- What sort of version skew between stage0 and stage1 are we expecting to support? (Can we compile rust1.1 using rust1.0? What about rust2.0?)
Additionally, I currently see numerous “breaking” changes transitioned via #[cfg(stage0)]. The assumption is that stage0 is older than the breaking change, and stage1+ is newer than the change. Amongst other things, this means that you can’t build stage0 again using the compiler that you’ve just built
I see there’s already been discussion towards other mechanisms for tagging version-specific code(*). I’ve read what I can find, but I’m new to the community so mostly I’m just looking to get caught up on the conversations around this - and register a vote for “we need to have a story for this for 1.0, and not later”.