Skip to content
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

Switch compiler to Rust 2021 #88637

Closed
m-ou-se opened this issue Sep 4, 2021 · 2 comments · Fixed by #89103
Closed

Switch compiler to Rust 2021 #88637

m-ou-se opened this issue Sep 4, 2021 · 2 comments · Fixed by #89103
Assignees
Labels
A-edition-2021 Area: The 2021 edition T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@m-ou-se
Copy link
Member

m-ou-se commented Sep 4, 2021

This is blocked on the beta/bootstrap compiler being updated to 1.56.

@m-ou-se m-ou-se added A-edition-2021 Area: The 2021 edition S-blocked Status: Blocked on something else such as an RFC or other implementation work. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 4, 2021
@camelid camelid removed the S-blocked Status: Blocked on something else such as an RFC or other implementation work. label Sep 18, 2021
@camelid
Copy link
Member

camelid commented Sep 18, 2021

No longer blocked! The bootstrap compiler is now 1.56.

@Mark-Simulacrum
Copy link
Member

8ae1524 are the migration fixes currently suggested in-tree

@bors bors closed this as completed in ac2d9fc Sep 21, 2021
flip1995 pushed a commit to flip1995/rust that referenced this issue Sep 28, 2021
Migrate in-tree crates to 2021

This replaces rust-lang#89075 (cherry picking some of the commits from there), and closes rust-lang#88637 and fixes rust-lang#89074.

It excludes a migration of the library crates for now (see tidy diff) because we have some pending bugs around macro spans to fix there.

I instrumented bootstrap during the migration to make sure all crates moved from 2018 to 2021 had the compatibility warnings applied first.

Originally, the intent was to support cargo fix --edition within bootstrap, but this proved fairly difficult to pull off. We'd need to architect the check functionality to support running cargo check and cargo fix within the same x.py invocation, and only resetting sysroots on check. Further, it was found that cargo fix doesn't behave too well with "not quite workspaces", such as Clippy which has several crates. Bootstrap runs with --manifest-path ... for all the tools, and this makes cargo fix only attempt migration for that crate. We can't use e.g. --workspace due to needing to maintain sysroots for different phases of compilation appropriately.

It is recommended to skip the mass migration of Cargo.toml's to 2021 for review purposes; you can also use `git diff d6cd2c6 -I'^edition = .20...$'` to ignore the edition = 2018/21 lines in the diff.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-edition-2021 Area: The 2021 edition T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants