-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Copy stage0 binaries into stage0-sysroot #101691
Comments
We should also consider renaming |
@rustbot claim |
The name is correct though. It is a directory you can pass in as |
@bjorn3 so is Honestly I would rather rename all the |
|
Ok, then maybe |
Maybe rename stage0 to bootstrap and stage0-sysroot to stage0, matching stage1-...? |
|
Copy stage0 binaries into stage0-sysroot Fixes rust-lang#101691
This reverts commit 32f8eb2.
Reverted in #101942 |
I actually wanted to recommend something like this as an alternative std benchmarking workflow. Currently I have to suggest a stage1 build. |
@the8472 I meant |
@chenyukang do you know when you'll have a chance to follow up here? If you're not planning to follow up, can you please release your assignment on the issue? |
Sorry, I didn't follow this item recently. |
@rustbot claim |
@KittyBorgX thanks for looking at it :) the first step is to cherry-pick the changes in #101711 to the latest master commit. Then you'll need to fix the bug Mark mentioned in #101942, which I believe has some more details in https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/rustc.20benchmark. I think it's enough to copy the user-provided Feel free to ask questions here or in https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap. |
It was mentioned that #108302 reverted this so I am reopening this unless someone can point me to the, er, revert of the revert? |
Useful Links and Points for anyone who wants to work on this: If I am to understand correctly, the revert of the revert was rejected mainly because rust perf (https://perf.rust-lang.org/status.html) broke. For anyone working on this issue again, here's a point to note: Just copying the entire parent |
My suggestion would be to re-land #107956 almost as-is, except with this feature disabled when a custom |
@rustbot claim |
Copy stage0 `rustc` binaries to `stage0-sysroot` This is basically a revival of rust-lang/rust#101711 and rust-lang/rust#107956, with an added check that the full sysroot will only be created if the original rustc comes from `stage0/bin`. What is/should be tested: - [x] `rustup toolchain link stage0` (new libstd is used correctly) - [x] `python3 x.py fmt dist --stage 0` - [x] Custom rustc/cargo in `config.toml` (in this case this logic is ignored) - [x] Perfbot (try perf run has succeeded) - [x] Real use case (rust-lang/backtrace-rs#542) (Hopefully) fixes: rust-lang/rust#101691 This is not the "end all, be all" solution to this problem, but as long as it resolves the basic use-case, and doesn't break perfbot, I say ship it. This code will probably be nuked anyway Soon™ because of the stage redesign.
Currently, the beta binaries are only present in
build/stage0/bin
;build/stage0-sysroot
has only the standard library, not any binaries. That causes two issues:rustup toolchain link
doesn't work with stage0-sysroot, meaning there's no way to change the standard library and use those changes at runtime without doing a full stage 1 buildx dist --stage 0
doesn't work. This is very rare to want to do, but can be useful when modifying thedist
process itself, to avoid long compile times.Copying the binaries into stage0-sysroot is an easy way to fix both problems at once.
Mentoring instructions: Add a
builder.copy
call inimpl Step for Sysroot
rust/src/bootstrap/compile.rs
Line 1146 in 6f0c4a6
bin
directory frombuild/stage0
.The text was updated successfully, but these errors were encountered: