Description
I found a possible regression in rustc with a crate that builds with Rust 1.71.1, but does not build anymore with the latest 1.72.0 (the compiler seems stuck indefinitely).
This broke the build of my project (which has yash-syntax as a dependency). The problem does not seem to be present anymore with the latest 1.73.0 beta.
This only seems to happen with cargo build --release
, the crate still builds with cargo build
.
This could be related to "Const evaluation time is now unlimited" from the Rust 1.72.0 release announcement.
The git checkout f7db5e61d24c9f79cf0fac532a47a7c12272cab1
line is currently optional (since that's the latest commit on the master
branch), it's only there for posterity.
This works (1.71.1)
podman run -it --rm rust:1.71.1 sh -c '
git clone https://github.com/magicant/yash-rs
cd yash-rs
git checkout f7db5e61d24c9f79cf0fac532a47a7c12272cab1
cargo build --release --verbose -p yash-syntax
'
This gets stuck (1.72.0)
podman run -it --rm rust:1.72.0 sh -c '
git clone https://github.com/magicant/yash-rs
cd yash-rs
git checkout f7db5e61d24c9f79cf0fac532a47a7c12272cab1
cargo build --release --verbose -p yash-syntax
'
This works again (1.73.0-beta.2)
podman run -it --rm rust:1.72.0 sh -c '
rustup install beta
git clone https://github.com/magicant/yash-rs
cd yash-rs
git checkout f7db5e61d24c9f79cf0fac532a47a7c12272cab1
cargo +beta build --release --verbose -p yash-syntax
'
Workaround
Adding this to my Cargo.toml
fixed the --release
build of my project (with yash-syntax as a dependency).
[profile.release.package.yash-syntax]
opt-level = 0
Meta
rustc --version --verbose
:
rustc 1.72.0 (5680fa18f 2023-08-23)
binary: rustc
commit-hash: 5680fa18feaa87f3ff04063800aec256c3d4b4be
commit-date: 2023-08-23
host: x86_64-unknown-linux-gnu
release: 1.72.0
LLVM version: 16.0.5
Activity
compiler-errors commentedon Aug 27, 2023
Does your project use async? If so, then it may have been fixed by #114948.
kpcyrd commentedon Aug 28, 2023
Thanks for your reply, yes yash-syntax is using async.
ZhongRuoyu commentedon Aug 28, 2023
Thanks @kpcyrd for the report and @compiler-errors for the hint! I tried with a local Rust 1.72.0 build with cherry-picked #114948, and I can confirm that with the patched Rust build, yash-syntax can now be built normally.
kadiwa4 commentedon Sep 1, 2023
@rustbot label: -regression-from-stable-to-beta +regression-from-stable-to-stable
(1.72.0 is not beta)
kpcyrd commentedon Sep 20, 2023
I think this was related to #113372 and is now fixed with Rust 1.72.1