Skip to content

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

Merged
merged 11 commits into from
Aug 30, 2020
34 changes: 34 additions & 0 deletions posts/inside-rust/2020-08-12-changes-to-x-py-defaults.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
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 the rust compiler, 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`.
Copy link
Member

@RalfJung RalfJung Aug 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe say that x.py build --stage 1 is equivalent to x.py build --stage 1 library/std, assuming that's true?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, sort of. It's 'everything minus rustc', which includes the standard library, tools, and rustdoc. I can add that to the post.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And most tools are disabled by default, so in the common case it's just library/std + rustdoc.

Copy link
Member

@RalfJung RalfJung Aug 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, that seems like an odd default -- I don't think I ever wanted the tools or rustdoc. But whatever. I guess I'll just have to keep explicitly specifying the library.^^

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah ... I meant to change it to filter library/std in the MCP but by the time I thought of it it had already been accepted :/

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How hard would it be to change this? If we all agree that to be the sensible choice, maybe we should just do it, even if it requires another MCP.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implementation shouldn't be too hard. I'm happy to open another MCP but since they take at least 10 days to be accepted I think it would be helpful to publish this blog post first.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I never opened the MCP 🤦 I'll do that now.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rust-lang/compiler-team#351, feel free to second :)


- `debuginfo` now defaults to `1` when `debug = true`. Previously, the default was 2.

## Why were the changes made?

For a detailed rationale of the changes, as well as more information about the alternatives considered, see

- [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