-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
rustc does not terminate after 1.57.0 #93137
Comments
This should compile in a reasonable amount of time on the latest nightly. |
thanks @Aaron1011 ! confirmed latest nightly fixed this. could i have some background? how's the fix looks like? thanks! |
@dingelish: In the past, we used to aggressively cache the results of trait evaluation and projection. However, this turned out to interact badly with incremental compilation, and could lead to ICEs. As a result, some of this caching logic was removed in PRs like #88945 While our performance benchmarks showed only small to moderate performance regressions, it turned out that the caching was needed to prevent exponential blowup in some cases that were not covered by our benchmark. I re-added some of the caching logic in PRs like #89831 (in a modified and potentially less effective form, to be compatible with incremental compilation). This appears to have fixed the exponential blowup. See #89195 and rust-lang/rustc-perf#1124 for more context |
thanks for the explaination! it's pretty clear. thanks again! |
I tried this code:
I expected to see this happen: it compiles successfully
Instead, this happened: rustc takes long time to compile as the number of
or_else(|_| zoo(""))
increases. looks like exponential time. 1.56.1 successfully compiles it.Meta
rustc --version --verbose
:Backtrace
no backtrace
The text was updated successfully, but these errors were encountered: