-
Notifications
You must be signed in to change notification settings - Fork 300
Add post about changes to x.py defaults #666
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
Changes from 7 commits
e8f47da
bbe45ab
2f7de90
9b770da
c3df59b
cf91f1f
0e43687
5a87a5a
29eef78
1afb969
91b2629
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
--- | ||
layout: post | ||
title: "Changes to x.py defaults" | ||
author: Joshua Nelson | ||
team: the compiler team <https://www.rust-lang.org/governance/teams/compiler> | ||
--- | ||
|
||
Recently, the defaults for [`x.py`], the tool used to [bootstrap] the Rust compiler from source, changed. If you regularly contribute to Rust, this might affect your workflow. | ||
|
||
## What changes were made? | ||
|
||
- The default stage is now dependent on the subcommand: | ||
+ `dist`: stage 2 | ||
+ `build`: stage 1 | ||
+ `test`: stage 1 | ||
+ `doc`: stage 0 | ||
|
||
- stage1 `rustc` artifacts are no longer built by `x.py build --stage 1`. To get the old behavior back, use `x.py build --stage 1 src/rustc`. The new behavior for `build --stage 1` builds everything except `rustc`, which includes the standard library, `rustdoc`, and various other tools (if the tools are enabled). | ||
jyn514 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
- `debuginfo` now defaults to `1` when `debug = true`. Previously, the default was 2. | ||
|
||
## Why were the changes made? | ||
|
||
Previously, `x.py build` would build `rustc` three separate times: | ||
|
||
1. `build/stage0-rustc` | ||
2. `build/stage1-rustc` | ||
3. `build/stage2-rustc` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This seems false - we only built 2 times, and uplifted stage 1 to stage 2 without full bootstrap being on, IIRC. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah hmm I'm confused then - maybe libstd was being built three times? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As far as I know, the stage 2 libstd "build" just creates a copy of the one built for stage 1. No compilation happens. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Well my changes seem much less impressive when you put it that way 😆 Updated to only say stage1 rustc/libstd |
||
|
||
Normally, contributors only want to build the compiler once, which lets them test their changes quickly. After this change, that's now the case: | ||
jyn514 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
1. `build/stage0-rustc` | ||
|
||
`debuginfo = 2` generates several gigabytes of debug information, | ||
making the previous default settings for `debug = true` very painful. | ||
|
||
For a detailed rationale of the changes, as well as more information about the alternatives considered, see | ||
jyn514 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
- [the MCP] | ||
- the [implementation PR] | ||
- the [Zulip stream] | ||
|
||
[`x.py`]: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html#what-is-xpy | ||
[bootstrap]: https://rustc-dev-guide.rust-lang.org/building/bootstrapping.html | ||
[the MCP]: https://github.com/rust-lang/compiler-team/issues/326 | ||
[implementation PR]: https://github.com/rust-lang/rust/pull/73964 | ||
[Zulip stream]: https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Use.20sane.20defaults.20in.20x.py.20compiler-team.23326 |
Uh oh!
There was an error while loading. Please reload this page.