Subject: [PATCH core-updates] gnu: rust: Use rust-1.60.0

From: Jim Newsome <[email-masked]>
Date: Wed, 3 Aug 2022 20:47:15 -0500

Hi, I'm new to this project and this code-review workflow, so please bear with me :).

It looks like there have been a few attempts here at updating Rust, including [Paul's], [Felipe's], and [my own].

[Paul's]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54439#5
[Felipe's]: https://issues.guix.gnu.org/54475#0
[my own]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56684

There's some discussion in this thread about using an updated mrustc and using that to cut out some earlier steps of the bootstrap chain. I propose leaving that out for the moment. It seems both nontrivial and orthogonal, so IMO would make more sense as its own thread / patch-set, which could be reviewed and merged independently, before or after this one.

I think there's some confusion about where and how tests are enabled/disabled. IIUC in the current baseline, they are disabled in `rust-1.55`, which is the first version built with an earlier "official" rust:

```
       ;; Only the final Rust is tested, not the intermediate bootstrap ones,
       ;; for performance and simplicity.
       #:tests? #f
```

and subsequent versions inherit that via the `rust-bootstrapped-package` function.

The latest and public version (currently `rust-1.57`) re-enables most of the tests and fixes up some things so that the tests pass.

So I think the approach here when adding versions is to change the current latest (1.57) to the simpler form that keeps tests disabled, add any additional necessary steps, and have the test-reenabling code again in the latest version.

2 patches included:

* First is a pure refactor to decouple  "rust-1.57" from "rust" to help avoid confusion in the future.
* Second adds 1.58, 1.59, and 1.60, and makes rust-1.60 the new rust.

In the latter patch I also tried building each version with a Rust 2 versions back instead of just 1 version back, to see if any can be left out. Unfortunately they couldn't. I'm including some of the errors in the comments for reference.

-Jim