[bug#77616,rust-team,0/6] Shorten rust bootstrap

Message ID CH3PR84MB34241501F6CA7FE200A2D82AC5AA2@CH3PR84MB3424.NAMPRD84.PROD.OUTLOOK.COM
Headers
Series Shorten rust bootstrap |

Message

Morgan Smith April 7, 2025, 6:52 p.m. UTC
mrustc supports bootstraping rust version 1.74.0.  This shortens the bootstrap
process by removing the need to compile 19 versions of rust.

I also decided to use gexps everywhere for fun.

I tested this on my laptop but I suppose we need to run some CI or something
right?

Morgan Smith (6):
  gnu: mrustc: Update to 0.11.2.
  gnu: rust-bootstrap: Update to 1.74.0.
  gnu: rust-1.75: Inherit from rust-bootstrap.
  gnu: rust-bootstrapped-package: Use modify-inputs.
  gnu: Remove unneeded rust bootstrapping versions.
  gnu: rust: Use gexps.

 gnu/local.mk                                  |   2 -
 gnu/packages/patches/mrustc-patches.patch     |  19 -
 .../rust-1.64-fix-riscv64-bootstrap.patch     | 565 ----------
 gnu/packages/rust.scm                         | 976 ++++++------------
 4 files changed, 288 insertions(+), 1274 deletions(-)
 delete mode 100644 gnu/packages/patches/mrustc-patches.patch
 delete mode 100644 gnu/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch


base-commit: 7be2b8f57f6986654f198b43b4e96833e18b1a77
  

Comments

Ahmad Draidi April 18, 2025, 8:40 a.m. UTC | #1
Greetings,


On 4/7/25 22:52, Morgan Smith wrote:
> mrustc supports bootstraping rust version 1.74.0.  This shortens the bootstrap
> process by removing the need to compile 19 versions of rust.
Thanks for the patch series! This has the potential to shave off a day 
of my build times.
>
> I also decided to use gexps everywhere for fun.
>
> I tested this on my laptop but I suppose we need to run some CI or something
> right?
>
> Morgan Smith (6):
>    gnu: mrustc: Update to 0.11.2.
>    gnu: rust-bootstrap: Update to 1.74.0.
>    gnu: rust-1.75: Inherit from rust-bootstrap.
>    gnu: rust-bootstrapped-package: Use modify-inputs.
>    gnu: Remove unneeded rust bootstrapping versions.

I applied the first 5 patches of this series locally on top of 
cc4b392a8303788762ed9adb9c5635cf227e58a2, but it fails to build. The 
sixth patch fails to apply, also.

I have a few other patches (openssl, libpng, etc) but I don't think 
they're related to the failure.


I'm getting the following:

    builder for
    `/gnu/store/h08fh16kcvs90f3vmw9l6vh83czdhd4i-rust-1.77.1.drv' failed
    with exit code 1
    build of /gnu/store/h08fh16kcvs90f3vmw9l6vh83czdhd4i-rust-1.77.1.drv
    failed
    View build log at
    '/var/log/guix/drvs/h0/8fh16kcvs90f3vmw9l6vh83czdhd4i-rust-1.77.1.drv.gz'.

And the contents of the log file above are the following:

    ice-9/read.scm:126:4: In procedure read-expr*:
    /gnu/store/cirq2ajq0fc3s5h7xykh22ngwib6nbc5-rust-1.77.1-builder:1:3626:
    Unknown # object: "#<"


>    gnu: rust: Use gexps.
>
>   gnu/local.mk                                  |   2 -
>   gnu/packages/patches/mrustc-patches.patch     |  19 -
>   .../rust-1.64-fix-riscv64-bootstrap.patch     | 565 ----------
>   gnu/packages/rust.scm                         | 976 ++++++------------
>   4 files changed, 288 insertions(+), 1274 deletions(-)
>   delete mode 100644 gnu/packages/patches/mrustc-patches.patch
>   delete mode 100644 gnu/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch
>
>
> base-commit: 7be2b8f57f6986654f198b43b4e96833e18b1a77

Thanks,

Ahmad
  
Efraim Flashner May 8, 2025, 8:55 a.m. UTC | #2
Thanks for the patches!

On Mon, Apr 07, 2025 at 02:52:05PM -0400, Morgan Smith wrote:
> mrustc supports bootstraping rust version 1.74.0.  This shortens the bootstrap
> process by removing the need to compile 19 versions of rust.
> 
> I also decided to use gexps everywhere for fun.
> 
> I tested this on my laptop but I suppose we need to run some CI or something
> right?
> 
> Morgan Smith (6):
>   gnu: mrustc: Update to 0.11.2.

I've merged this patch with one I had locally updating to a later
commit.

>   gnu: rust-bootstrap: Update to 1.74.0.

I adjusted this patch so that we kept the previous rust-bootstrap since
rust-bootstrap@1.74 doesn't build on all the architectures.  I found it
failed on aarch64 and powerpc64le and the build is still ongoing for
riscv64.  I haven't tested it on any of the 32-bit systems yet.

>   gnu: rust-1.75: Inherit from rust-bootstrap.

This patch I dropped since we can't get rid of the intermediate rust
versions yet.  I instead wrote a different patch merging
rust-bootstrap-1.74 into the chain so that rust-1.75 will build with
rust-bootstrap-1.74 if it is supported and rust-1.74 otherwise.

>   gnu: rust-bootstrapped-package: Use modify-inputs.

This one I modified slightly to keep the *-bootstrap names since I
didn't drop them from rust-bootstrap-1.54.

>   gnu: Remove unneeded rust bootstrapping versions.

This one I didn't apply since we still need the in between versions.

>   gnu: rust: Use gexps.

This one didn't apply, but I'd be happy to use if you fixed it up.

> 
>  gnu/local.mk                                  |   2 -
>  gnu/packages/patches/mrustc-patches.patch     |  19 -
>  .../rust-1.64-fix-riscv64-bootstrap.patch     | 565 ----------
>  gnu/packages/rust.scm                         | 976 ++++++------------
>  4 files changed, 288 insertions(+), 1274 deletions(-)
>  delete mode 100644 gnu/packages/patches/mrustc-patches.patch
>  delete mode 100644 gnu/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch
> 
> 
> base-commit: 7be2b8f57f6986654f198b43b4e96833e18b1a77
> -- 
> 2.49.0
> 
> 
>