-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
bootstrap: show diagnostics relative to rustc src dir #132390
Conversation
rustbot has assigned @albertlarsan68. Use |
@RalfJung by "Depends on rust-lang/cargo#14752" do you mean this PR is blocked on the cargo PR being merged and synced first? |
This comment has been minimized.
This comment has been minimized.
That PR needs to propagate to bootstrap cargo. |
add unstable -Zroot-dir flag to configure the path from which rustc should be invoked This implements the proposal described [here](#9887 (comment)): we add a new flag, for now called `-Zroot-dir`, that configures the directory relative to which rustc is given the crate root filenames to build. (Files outside this directory are passed absolutely.) This is necessary to be able to fix (no github don't close that issue yet) rust-lang/rust#128726: in multi-workspace repositories that use scripts to manage a whole bunch of cargo invocations, currently the output cargo+rustc produce is often hard or even impossible to interpret for both human and machine consumption. This is because directories in the output are always relative to the workspace root, but when cargo is invoked many times for different workspaces, it is quite unclear what the workspace root is for the invocation that failed. So I suggest we should have a new flag that the build script in such a repo can set to the consistent "root dir" that the user would recognize as such (e.g., the root of the rustc source tree), and all paths emitted by cargo and rustc should be relative to that directory. I don't know all the places that cargo itself emits paths (if any), but this PR changes the way we invoke rustc to honor the new flag, so all paths emitted by rustc will be relative to the `-Zroot-dir`. See rust-lang/rust#132390 for the changes needed in rustc bootstrap to wire this up; together, that suffices to finally properly show errors in RA for all parts of the rustc src tree. :)
@RalfJung the cargo side has been synced, r=me when CI is green after a rebase :) |
We need to wait until the cargo PR is part of the bootstrap toolchain, right? |
Yeah this will have to wait a few weeks, unfortunateltly.
|
367dffc
to
846d03c
Compare
This comment has been minimized.
This comment has been minimized.
The next beta branches on November 22, so I guess the bootstrap bump will be shortly after that. |
🌲 The tree is currently closed for pull requests below priority 100. This pull request will be tested once the tree is reopened. |
…ertlarsan68 bootstrap: show diagnostics relative to rustc src dir Fixes rust-lang#128726 Depends on rust-lang/cargo#14752 propagating to bootstrap cargo
I think that's fine, especially since the A downside is that this adds a little bit of bloat, making every standard library path in the binary 8 bytes longer. It's still not much even if all ~1500 files are referenced, but I wonder if some size-sensitive embedded folks will notice. |
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
@rust-lang/cargo seems like there's again a problem with that cargo path logic... |
I found a different way to make this work, by adjusting the patch that was added in #133533. Note that if snapbox ever removes their |
d05bc03
to
dd2ac08
Compare
The adjustment looks good to me. |
@bors r=albertlarsan68,weihanglo |
☀️ Test successful - checks-actions |
Finished benchmarking commit (ca4e54f): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (secondary -0.6%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeResults (primary 0.0%, secondary 0.1%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Bootstrap: 767.632s -> 768.479s (0.11%) |
Fixes #128726
Depends on rust-lang/cargo#14752 propagating to bootstrap cargo