-
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
regression: crate compiles much slower with 1.82 #132064
Comments
This is another regression from #126024 |
some more information: 1.81
1.82
|
Triage notes (AFAIUI): #132625 is merged, but the compile time is not fully clawed back as #132625 is a compromise between (full) soundness and performance in favor of a full revert (full revert would bring back more soundness problems AFAICT)
Future improvements might be possible to further claw back the compile times, but should at least be better for now with #132625. (Please feel free to edit this message to better reflect the status) |
Chiming in -- at Oxide, in our largest repository, this appears to have made many operations much slower. For example,
The slowdown is isolated to Diesel-generated code. We've pinned to 1.81 for now. |
Can you test on nightly? Things should be better with #132625. |
On my machine,
That looks much better. Thanks! |
(Not clear to me why it looks like the regression has been fully addressed for us, but not for Lemmy.) |
Ah, okay, some commands are still slower. With the same revision,
I don't have the time at the moment to dig into exactly what's causing the slowdown. Our Diesel-generated code is already the slowest to compile, so any regression to it is pretty rough for iteration cycles. |
just did another rustc 1.81.0 (eeb90cd 2024-09-04):
rustc 1.84.0-nightly (b91a3a0 2024-11-07):
build times for lemmy seem to be fine again for me as well. |
Rust 1.82 has a rather serious compile time regression in Diesel-generated code: rust-lang/rust#132064. This makes Omicron builds up to twice as slow. We used to be on 1.80 before moving to 1.82, but 1.81 has some nice things like `#[expect]`. So move to 1.81. We expect the regression to be fixed in Rust 1.84. Thanks to @jmpesp for tracking this down!
Hey @sunshowers, I just wanted to let you know that while I'm glad your build times are back down from their 2x build time regressions, we're probably not going to be able to recover that final ~9 seconds that you noted in your comment for Sorry, and I hope that it doesn't hinder your builds too much! I'll nominate my fix PR for 1.83 backport so it may get to y'all sooner. |
Thanks @compiler-errors. Looking forward to the new trait solver! |
Looks accidental due to magic comment |
Our project takes much longer to compile with Rust 1.82 compared to previous versions. To reproduce, git clone
https://github.com/LemmyNet/lemmy.git
and runcargo check
(also happens with build or lint). The problem happens specifically with the crate lemmy_db_views.cargo check with 1.82: 6m 19s
cargo check with 1.81: 1m 22s
Version it worked on
It most recently worked on:1.81
Version with regression
rustc --version --verbose
:@rustbot modify labels: +regression-from-stable-to-1.82 -regression-untriaged
The text was updated successfully, but these errors were encountered: