-
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
Endless Compilation when Successive Calling to map
#116780
Labels
C-bug
Category: This is a bug.
I-compiletime
Issue: Problems and improvements with respect to compile times.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Comments
This seems to be a type of quadratic blowup that changed in 1.73. I did some tests by altering the number of
|
searched nightlies: from nightly-2023-08-01 to nightly-2023-10-16 bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-unknown-linux-gnu cargo bisect-rustc --start 2023-08-01 --timeout 2 |
bors
added a commit
to rust-lang-ci/rust
that referenced
this issue
Oct 17, 2023
…piler-errors Fix a performance regression in obligation deduplication. Commit 8378487 from rust-lang#114611 changed the location of an obligation deduplication step in `opt_normalize_projection_type`. This meant that deduplication stopped happening on one path where it was still necessary, causing a couple of drastic performance regressions. This commit moves the deduplication back to the old location. The good news is that rust-lang#114611 had four commits and 8378487 was of minimal importance, so the perf benefits from that PR remain. Fixes rust-lang#116780, rust-lang#116797. r? `@compiler-errors`
cuviper
pushed a commit
to cuviper/rust
that referenced
this issue
Oct 21, 2023
Commit 8378487 from rust-lang#114611 changed the location of an obligation deduplication step in `opt_normalize_projection_type`. This meant that deduplication stopped happening on one path where it was still necessary, causing a couple of drastic performance regressions. This commit moves the deduplication back to the old location. The good news is that rust-lang#114611 had four commits and 8378487 was of minimal importance, so the perf benefits from that PR remain. Fixes rust-lang#116780, rust-lang#116797. (cherry picked from commit 91f2fbc)
xobs
pushed a commit
to betrusted-io/rust
that referenced
this issue
Nov 7, 2023
Commit 8378487 from rust-lang#114611 changed the location of an obligation deduplication step in `opt_normalize_projection_type`. This meant that deduplication stopped happening on one path where it was still necessary, causing a couple of drastic performance regressions. This commit moves the deduplication back to the old location. The good news is that rust-lang#114611 had four commits and 8378487 was of minimal importance, so the perf benefits from that PR remain. Fixes rust-lang#116780, rust-lang#116797. (cherry picked from commit 91f2fbc)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
C-bug
Category: This is a bug.
I-compiletime
Issue: Problems and improvements with respect to compile times.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
cat hang.rs
I expected to see this happen: The compiler compiles successfully or outputs an error message.
Instead, this happened: The code, as provided below, appears to encounter a hang
Command
rustc -C opt-level=0 hang.rs
Meta
rustc --version --verbose
:The same problem is reproduced on the nightly version(2023-10-15;
42b1224e9eb37177f608d3f6a6f2be2ee13902e4
)Backtrace
The text was updated successfully, but these errors were encountered: