Skip to content

[DO NOT MERGE] -Znext-solver=globally experiments #133502

Draft
lcnr wants to merge 6 commits into
rust-lang:mainfrom
lcnr:rust4
Draft

[DO NOT MERGE] -Znext-solver=globally experiments #133502
lcnr wants to merge 6 commits into
rust-lang:mainfrom
lcnr:rust4

Conversation

@lcnr

@lcnr lcnr commented Nov 26, 2024

Copy link
Copy Markdown
Contributor

View all comments

A revival of #124812. See

Current status:

./x.py b --stage 2 passes 🎉

try builds succeed 🎉 🎉 🎉

first perf run 👻 second perf run 👻 third perf run 👻

crater

This does not detect hangs or memory issues. We are triaging the regressions in https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/crater.20triage.20.3A3/with/572783267 and welcome your help there.

date #crates #regressions
2025.04.11 100 2
2025.04.11 1000 27
2025.04.17 10000 456
2025.04.18 10000 437
2025.04.24 10000 164
2025.04.26 10000 108
2025.04.28 10000 91
2025.05.01 10000 145 woops
2025.05.03 6242281 15852
2025.05.05 89643 9312
2025.05.06 44013 7262
2025.05.07 27043 6682
2025.05.09 23453 6642
2025.09.20 7019521 4739 + 7039 spurious
2025.10.02 117123 2568 + 2014 spurious
2025.10.04 45823 1173 + 1147 spurious2
2025.12.30 7611021 1424 + 8938 spurious 2
2026.01.01 57453 1371 + 3227 spurious 2
2026.01.06 41713 1361 + 2623 spurious 2

in-flight changes

r? @ghost

Footnotes

  1. a complete crater run 2 3

  2. with doubled recursion_limit when evaluating goals 2 3 4 5 6 7 8 9

  3. only testing crates which may have regressed from the above run 2 3 4 5 6 7 8

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Nov 26, 2024
@rust-log-analyzer

This comment has been minimized.

@compiler-errors

Copy link
Copy Markdown
Contributor

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 27, 2024
[DO NOT MERGE] bootstrap with `-Znext-solver=globally`

A revival of rust-lang#124812.

Current status, we're failing in:

- failing in `rustc_next_trait_solver` with 126 instances of the following error
```
error[E0311]: the parameter type `I` may not live long enough
    |
help: consider adding an explicit lifetime bound
   --> compiler/rustc_next_trait_solver/src/solve/trait_goals.rs:624:53
    |
624 ~     fn consider_structural_builtin_unsize_candidates<'a>(
625 ~         ecx: &mut EvalCtxt<'a, D>,
626 |         goal: Goal<I, Self>,
627 ~     ) -> Vec<Candidate<I>> where I: 'a {
```
- `itertools` hangs, we're already encountered this hang in our previous attempt due to large type sizes. I believe that it's simply caused by a missing cache somewhere, potentially in `wf.rs`, but other visitors may also be responsible. See rust-itertools/itertools#945 for more details

### commits

- rust-lang#133501
- rust-lang#133493
- 9456bfe and b21b116 reimplement candidate preference based on rust-lang#132325, not yet a separate PR
- c3ef9cd is a rebased version of rust-lang#125334, unsure whether I actually want to land this PR for now

r? `@ghost`
@bors

bors commented Nov 27, 2024

Copy link
Copy Markdown
Collaborator

⌛ Trying commit f631ca8 with merge ca04381...

@compiler-errors

Copy link
Copy Markdown
Contributor

@rust-log-analyzer

This comment was marked as off-topic.

@rust-log-analyzer

This comment has been minimized.

@bors

bors commented Nov 27, 2024

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 27, 2024
@bors

bors commented Nov 27, 2024

Copy link
Copy Markdown
Collaborator

☔ The latest upstream changes (presumably #133527) made this pull request unmergeable. Please resolve the merge conflicts.

@lqd

lqd commented Nov 27, 2024

Copy link
Copy Markdown
Member

Next failure is on color-print-proc-macro-0.3.6 while building cargo.

thesignal

pub fn repro() -> impl FnMut() {
    if true {
        || ()
    } else {
        || ()
    }
}

godbolt

@compiler-errors

Copy link
Copy Markdown
Contributor

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 27, 2024
[DO NOT MERGE] bootstrap with `-Znext-solver=globally`

A revival of rust-lang#124812.

Current status:

`./x.py b --stage 2` passes 🎉

### commits

- rust-lang#133501
- rust-lang#133493
- 9456bfe and b21b116 reimplement candidate preference based on rust-lang#132325, not yet a separate PR
- c3ef9cd is a rebased version of rust-lang#125334, unsure whether I actually want to land this PR for now
- rust-lang#133517
* rust-lang#133518
* rust-lang#133519
* rust-lang#133520
* rust-lang#133521
* rust-lang#133524

r? `@ghost`
@bors

bors commented Nov 27, 2024

Copy link
Copy Markdown
Collaborator

⌛ Trying commit 6210ed3 with merge ac5ccad...

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@bors

bors commented Nov 27, 2024

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-actions

@compiler-errors

Copy link
Copy Markdown
Contributor

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 27, 2024
[DO NOT MERGE] bootstrap with `-Znext-solver=globally`

A revival of rust-lang#124812.

Current status:

`./x.py b --stage 2` passes 🎉

### commits

- rust-lang#133501
- rust-lang#133493
- 9456bfe and b21b116 reimplement candidate preference based on rust-lang#132325, not yet a separate PR
- c3ef9cd is a rebased version of rust-lang#125334, unsure whether I actually want to land this PR for now
- rust-lang#133517
* rust-lang#133518
* rust-lang#133519
* rust-lang#133520
* rust-lang#133521
* rust-lang#133524

r? `@ghost`
@bors

bors commented Nov 27, 2024

Copy link
Copy Markdown
Collaborator

⌛ Trying commit 8fa8f40 with merge 550ae0d...

@lqd

lqd commented Nov 27, 2024

Copy link
Copy Markdown
Member

I was reducing the new failure but you've already fixed it ^^

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@craterbot

Copy link
Copy Markdown
Collaborator

🚧 Experiment pr-133502-22 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot

Copy link
Copy Markdown
Collaborator

🎉 Experiment pr-133502-22 is completed!
📊 2772 regressed and 10 fixed (913545 total)
📊 17609 spurious results on the retry-regressed-list.txt, consider a retry1 if this is a significant amount.
📰 Open the summary report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Footnotes

  1. re-run the experiment with crates=https://crater-reports.s3.amazonaws.com/pr-133502-22/retry-regressed-list.txt

@adwinwhite

Copy link
Copy Markdown
Contributor

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@adwinwhite

Copy link
Copy Markdown
Contributor

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 286dc6d failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@lqd

lqd commented Jul 8, 2026

Copy link
Copy Markdown
Member

Ah, it seems building cargo is making the new solver ICE.

@adwinwhite

Copy link
Copy Markdown
Contributor

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-gnu-llvm-21-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
failures:

---- tests::test_unstable_options_tracking_hash stdout ----

thread 'tests::test_unstable_options_tracking_hash' (47825) panicked at compiler/rustc_interface/src/tests.rs:856:5:
assertion `left != right` failed
  left: NextSolverConfig { coherence: true, globally: true }
 right: NextSolverConfig { coherence: true, globally: true }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed::<rustc_session::config::NextSolverConfig, rustc_session::config::NextSolverConfig>

@rust-bors

rust-bors Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: b668081 (b66808126f24f2f30898306a881e1676824ea80c)
Base parent: c290daa (c290daa1e5274a52e54a0f49e31bd70192abc606)

@rust-timer

This comment has been minimized.

@adwinwhite

Copy link
Copy Markdown
Contributor

@craterbot check

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-133502-23 created and queued.
🤖 Automatically detected try build b668081
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (b668081): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
19.6% [0.3%, 491.0%] 240
Regressions ❌
(secondary)
17.8% [0.1%, 135.2%] 225
Improvements ✅
(primary)
-5.5% [-16.4%, -0.5%] 12
Improvements ✅
(secondary)
-10.4% [-81.3%, -0.0%] 59
All ❌✅ (primary) 18.4% [-16.4%, 491.0%] 252

Max RSS (memory usage)

Results (primary 5.9%, secondary -0.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
6.2% [1.1%, 24.4%] 117
Regressions ❌
(secondary)
4.1% [0.8%, 9.0%] 25
Improvements ✅
(primary)
-1.0% [-1.5%, -0.7%] 5
Improvements ✅
(secondary)
-3.1% [-6.6%, -0.8%] 41
All ❌✅ (primary) 5.9% [-1.5%, 24.4%] 122

Cycles

Results (primary 20.6%, secondary 19.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
21.7% [1.5%, 372.0%] 160
Regressions ❌
(secondary)
27.4% [2.1%, 128.6%] 115
Improvements ✅
(primary)
-5.6% [-9.5%, -2.4%] 7
Improvements ✅
(secondary)
-28.9% [-80.0%, -0.9%] 18
All ❌✅ (primary) 20.6% [-9.5%, 372.0%] 167

Binary size

Results (primary 0.1%, secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.4%] 67
Regressions ❌
(secondary)
0.0% [0.0%, 0.1%] 23
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [0.0%, 0.4%] 67

Bootstrap: 488.694s -> 504.328s (3.20%)
Artifact size: 389.00 MiB -> 385.17 MiB (-0.99%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool perf-regression Performance regression. PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-crater Status: Waiting on a crater run to be completed. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.