Skip to content

Conversation

@lcnr
Copy link
Contributor

@lcnr lcnr commented Aug 27, 2025

hopefully this doesn't significantly improve perf. Would be quite sad.

r? ghost

@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 Aug 27, 2025
@rustbot
Copy link
Collaborator

rustbot commented Aug 27, 2025

Some changes occurred to the core trait solver

cc @rust-lang/initiative-trait-system-refactor

@lcnr
Copy link
Contributor Author

lcnr commented Aug 27, 2025

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Aug 27, 2025
[DO NOT MERGE] `-Znext-solver` test `Certainty::Yes` when only ambiguous goals are "trivial"
@rust-bors

This comment has been minimized.

@lcnr lcnr marked this pull request as draft August 27, 2025 15:37
@rustbot rustbot added S-waiting-on-perf Status: Waiting on a perf run to be completed. 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 Aug 27, 2025
@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
---- [ui] tests/ui/sized/coinductive-1.rs#next stdout ----

error in revision `next`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/sized/coinductive-1.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "next" "--check-cfg" "cfg(test,FALSE,current,next)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/sized/coinductive-1.next" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver"
stdout: none
--- stderr -------------------------------
error[E0282]: type annotations needed
##[error]  --> /checkout/tests/ui/sized/coinductive-1.rs:16:29
   |
LL |     let _ = Node::<Vec<()>>(Vec::new());
   |                             ^^^^^^^^^^ cannot infer type

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0282`.
------------------------------------------


---- [ui] tests/ui/sized/dont-incompletely-prefer-built-in.rs#next stdout ----

error in revision `next`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/sized/dont-incompletely-prefer-built-in.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "next" "--check-cfg" "cfg(test,FALSE,current,next)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/sized/dont-incompletely-prefer-built-in.next" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver"
stdout: none
--- stderr -------------------------------
error[E0277]: the size for values of type `T` cannot be known at compilation time
##[error]  --> /checkout/tests/ui/sized/dont-incompletely-prefer-built-in.rs:17:5
   |
LL | fn non_param_where_bound<T: ?Sized>()
   |                          - this type parameter needs to be `Sized`
...
LL |     is_sized::<W<_>>(x);
   |     ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
help: consider removing the `?Sized` bound to make the type parameter `Sized`
   |
LL - fn non_param_where_bound<T: ?Sized>()
---
---- [ui] tests/ui/traits/next-solver/cycles/coinduction/only-one-coinductive-step-needed.rs#next stdout ----

error in revision `next`: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/traits/next-solver/cycles/coinduction/only-one-coinductive-step-needed.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "next" "--check-cfg" "cfg(test,FALSE,current,next)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/traits/next-solver/cycles/coinduction/only-one-coinductive-step-needed.next" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver"
stdout: none
--- stderr -------------------------------
error[E0275]: overflow evaluating the requirement `Foo<u32>: Send`
##[error]  --> /checkout/tests/ui/traits/next-solver/cycles/coinduction/only-one-coinductive-step-needed.rs:33:15
   |
LL |     is_send::<Foo<u32>>();
   |               ^^^^^^^^
   |
   = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`only_one_coinductive_step_needed`)
note: required by a bound in `is_send`
  --> /checkout/tests/ui/traits/next-solver/cycles/coinduction/only-one-coinductive-step-needed.rs:30:15
   |
LL | fn is_send<T: Send>() {}
   |               ^^^^ required by this bound in `is_send`

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0275`.
------------------------------------------


---- [ui] tests/ui/traits/solver-cycles/129541-recursive-struct.rs#multiple_next stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/traits/solver-cycles/129541-recursive-struct.multiple_next/129541-recursive-struct.multiple_next.stderr`
diff of stderr:

- error: reached the recursion limit finding the struct tail for `<[Hello] as Normalize>::Assoc`
+ error[E0275]: overflow evaluating the requirement `<[Hello] as Normalize>::Assoc == _`
+   --> $DIR/129541-recursive-struct.rs:23:8
2    |
-    = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]`
+ LL |     a: <[Hello] as Normalize>::Assoc,
+    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 
5 error: aborting due to 1 previous error
6 

+ For more information about this error, try `rustc --explain E0275`.
7 

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/traits/solver-cycles/129541-recursive-struct.rs:23:8
+ error[E0275]: overflow evaluating the requirement `<[Hello] as Normalize>::Assoc == _`
+   --> $DIR/129541-recursive-struct.rs:23:8
+ LL |     a: <[Hello] as Normalize>::Assoc,
+    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ For more information about this error, try `rustc --explain E0275`.


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/solver-cycles/129541-recursive-struct.rs`

error in revision `multiple_next`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/traits/solver-cycles/129541-recursive-struct.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "multiple_next" "--check-cfg" "cfg(test,FALSE,unique_curr,unique_next,multiple_curr,multiple_next)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/traits/solver-cycles/129541-recursive-struct.multiple_next" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver"
stdout: none
--- stderr -------------------------------
error[E0275]: overflow evaluating the requirement `<[Hello] as Normalize>::Assoc == _`
##[error]  --> /checkout/tests/ui/traits/solver-cycles/129541-recursive-struct.rs:23:8
   |
LL |     a: <[Hello] as Normalize>::Assoc,
   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0275`.
------------------------------------------


---- [ui] tests/ui/traits/solver-cycles/129541-recursive-struct.rs#unique_next stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/traits/solver-cycles/129541-recursive-struct.unique_next/129541-recursive-struct.unique_next.stderr`
diff of stderr:

- error: reached the recursion limit finding the struct tail for `<[Hello] as Normalize>::Assoc`
+ error[E0275]: overflow evaluating the requirement `<[Hello] as Normalize>::Assoc == _`
+   --> $DIR/129541-recursive-struct.rs:23:8
2    |
-    = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]`
+ LL |     a: <[Hello] as Normalize>::Assoc,
+    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 
5 error: aborting due to 1 previous error
6 

+ For more information about this error, try `rustc --explain E0275`.
7 

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/traits/solver-cycles/129541-recursive-struct.rs:23:8
+ error[E0275]: overflow evaluating the requirement `<[Hello] as Normalize>::Assoc == _`
+   --> $DIR/129541-recursive-struct.rs:23:8
+ LL |     a: <[Hello] as Normalize>::Assoc,
+    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ For more information about this error, try `rustc --explain E0275`.


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/solver-cycles/129541-recursive-struct.rs`

error in revision `unique_next`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/traits/solver-cycles/129541-recursive-struct.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "unique_next" "--check-cfg" "cfg(test,FALSE,unique_curr,unique_next,multiple_curr,multiple_next)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/traits/solver-cycles/129541-recursive-struct.unique_next" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver"
stdout: none
--- stderr -------------------------------
error[E0275]: overflow evaluating the requirement `<[Hello] as Normalize>::Assoc == _`
##[error]  --> /checkout/tests/ui/traits/solver-cycles/129541-recursive-struct.rs:23:8
   |
LL |     a: <[Hello] as Normalize>::Assoc,
   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0275`.
---
diff of stderr:

32   --> $DIR/unconstrained-projection-normalization-2.rs:20:11
33    |
34 LL | fn foo(_: <Thing as Every>::Assoc) {}
-    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type for associated type `<Thing as Every>::Assoc`
+    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
36 
- error: aborting due to 3 previous errors
+ error[E0282]: type annotations needed
+   --> $DIR/unconstrained-projection-normalization-2.rs:20:11
+    |
+ LL | fn foo(_: <Thing as Every>::Assoc) {}
+    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
+    |
+    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
+ 
+ error: aborting due to 4 previous errors
38 
39 Some errors have detailed explanations: E0207, E0277, E0282.
40 For more information about an error, try `rustc --explain E0207`.

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/traits/unconstrained-projection-normalization-2.rs:20:11
+    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
+ error[E0282]: type annotations needed
+   --> $DIR/unconstrained-projection-normalization-2.rs:20:11
+    |
+ LL | fn foo(_: <Thing as Every>::Assoc) {}
+    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
+    |
+    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
+ 
+ error: aborting due to 4 previous errors


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/unconstrained-projection-normalization-2.rs`

error in revision `next`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/traits/unconstrained-projection-normalization-2.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "next" "--check-cfg" "cfg(test,FALSE,current,next)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/traits/unconstrained-projection-normalization-2.next" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver"
stdout: none
--- stderr -------------------------------
error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
##[error]  --> /checkout/tests/ui/traits/unconstrained-projection-normalization-2.rs:14:6
   |
---

error[E0282]: type annotations needed
##[error]  --> /checkout/tests/ui/traits/unconstrained-projection-normalization-2.rs:20:11
   |
LL | fn foo(_: <Thing as Every>::Assoc) {}
   |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type

error[E0282]: type annotations needed
##[error]  --> /checkout/tests/ui/traits/unconstrained-projection-normalization-2.rs:20:11
   |
LL | fn foo(_: <Thing as Every>::Assoc) {}
   |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
   |
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0207, E0277, E0282.
For more information about an error, try `rustc --explain E0207`.
---
- error: aborting due to 2 previous errors
+ error[E0282]: type annotations needed
+   --> $DIR/unconstrained-projection-normalization.rs:19:11
+    |
+ LL | static I: <Thing as Every>::Assoc = 3;
+    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
32 
- Some errors have detailed explanations: E0207, E0277.
+ error: aborting due to 3 previous errors
+ 
---
-   --> /checkout/tests/ui/traits/unconstrained-projection-normalization.rs:19:11
+ error[E0282]: type annotations needed
+   --> $DIR/unconstrained-projection-normalization.rs:19:11
+    |
+ LL | static I: <Thing as Every>::Assoc = 3;
+    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
+ error: aborting due to 3 previous errors
+ 
+ Some errors have detailed explanations: E0207, E0277, E0282.


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/unconstrained-projection-normalization.rs`

error in revision `next`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/traits/unconstrained-projection-normalization.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "next" "--check-cfg" "cfg(test,FALSE,current,next)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/traits/unconstrained-projection-normalization.next" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver"
stdout: none
--- stderr -------------------------------
error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
##[error]  --> /checkout/tests/ui/traits/unconstrained-projection-normalization.rs:13:6
   |
---

error[E0282]: type annotations needed
##[error]  --> /checkout/tests/ui/traits/unconstrained-projection-normalization.rs:19:11
   |
LL | static I: <Thing as Every>::Assoc = 3;
   |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0207, E0277, E0282.

@rust-bors
Copy link

rust-bors bot commented Aug 27, 2025

☀️ Try build successful (CI)
Build commit: 4017434 (4017434665c22b1d7a9d61a4b028d746817aa35f, parent: b2dd217dd0a099fb87601657ec480bf3e92b30a6)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (4017434): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@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)
0.2% [0.2%, 0.2%] 2
Regressions ❌
(secondary)
1.9% [0.5%, 3.0%] 10
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.9% [-1.2%, -0.6%] 6
All ❌✅ (primary) 0.2% [0.2%, 0.2%] 2

Max RSS (memory usage)

Results (primary 3.2%, secondary 4.7%)

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

mean range count
Regressions ❌
(primary)
3.2% [3.0%, 3.3%] 2
Regressions ❌
(secondary)
4.7% [3.1%, 5.5%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 3.2% [3.0%, 3.3%] 2

Cycles

Results (secondary -3.2%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.2% [-3.9%, -2.5%] 5
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 468.683s -> 467.957s (-0.15%)
Artifact size: 391.17 MiB -> 391.18 MiB (0.00%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Aug 27, 2025
@lcnr
Copy link
Contributor Author

lcnr commented Aug 28, 2025

nice, that's good 😊 i don't want to merge this

@lcnr lcnr closed this Aug 28, 2025
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

perf-regression Performance regression. 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)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants