Subject: [bug#56684] [PATCH 1/3] Bump rust 1.57 -> 1.58

From: Jim Newsome <[email-masked]>
Date: Thu, 21 Jul 2022 20:33:51 -0500

On 7/21/22 19:08, Maxime Devos wrote:
> E.g., you could try going directly from 1.57 to 1.60 without 
> intermediate steps. If that's possible, it would be less inefficient to 
> compile.

I dug into this a bit.

The Rust bootstrapping docs say to use x.py to download the stage0 
compiler. https://rustc-dev-guide.rust-lang.org/building/bootstrapping.html

x.py is a thin wrapper around bootstrap.py: 
https://github.com/rust-lang/rust/blob/master/x.py

bootstrap.py decides what compiler to use as stage0 from stage0.json: 
https://github.com/rust-lang/rust/blob/master/src/bootstrap/bootstrap.py

1.62.1 was compiled with 1.61.0: 
https://github.com/rust-lang/rust/blob/1.62.1/src/stage0.json#L6

1.61.0 was compiled with 1.60.0: 
https://github.com/rust-lang/rust/blob/1.61.0/src/stage0.json#L6

1.60.0 was compiled with 1.59.0: 
https://github.com/rust-lang/rust/blob/1.60.0/src/stage0.json#L6

1.59.0 was compiled with 1.58.0: 
https://github.com/rust-lang/rust/blob/1.59.0/src/stage0.json#L6

1.58.0 was compiled with 1.57.0: 
https://github.com/rust-lang/rust/blob/1.58.0/src/stage0.json#L6

So it looks like each release was compiled with a compiler from one 
feature-release back. In my patchset, I took the highest patch-version 
at each feature-version, since I don't think it makes sense to include 
outdated patch-levels, and it should be safe.

Trying to compile a release with an older compiler than it was 
originally compiled with seems unlikely to go well. It's not explicitly 
stated that it *won't* work, but it seems unlikely that it would, and 
would take a lot of time to verify by trial and error.