Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Oct 31, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

oli-obk and others added 17 commits October 28, 2025 11:11
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
…dead Constify trait aliases Allow `const trait Foo = Bar + [const] Baz;` trait alias declarations. Their rules are the same as with super traits of const traits. So `[const] Baz` or `const Baz` is only required for `[const] Foo` or `const Foo` bounds respectively. tracking issue rust-lang#41517 (part of the general trait alias feature gate, but I can split it out into a separate const trait alias feature gate. I just assumed that const traits would stabilize before trait aliases, and we'd want to stabilize trait aliases together with const trait aliases at the same time) r? ``@compiler-errors`` ``@fee1-dead``
…nds, r=kobzol Add new `--bypass-ignore-backends` option Fixes rust-lang#147063. It adds a new option to `bootstrap` to allow to ignore `//@ ignore-backends` statements in tests. cc ```@jieyouxu``` ```@antoyo``` r? ```@Kobzol```
…ips, r=nnethercote Improve diagnose for unconditional panic when resource limit Improve diagnostic message for similar issue rust-lang#115021. When `parallel_compiler=true`, the Rust compiler frontend sets `-Z threads` to match the number of cores, which is reasonable and common. However, in a constrained environment or with an excessive number of cores (such as 377 mentioned below 😑), it could consume all resources and cause a panic. Setting a default maximum for `-Z threads` in a parallel compiler is challenging. However, the panic error message can guide the user to check the system limit and explicitly lower the thread count according to their needs. ``` 14:55:47 thread 'main' panicked at /rustc/f1586001ace26df7cafeb6534eaf76fb2c5513e5/compiler/rustc_interface/src/util.rs:216:18: 14:55:47 called `Result::unwrap()` on an `Err` value: ThreadPoolBuildError { kind: IOError(Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }) } ... 14:55:47 note: compiler flags: --crate-type lib -C opt-level=z -C embed-bitcode=no -C linker=/cache/84996/rust-sdk/target/shim/aarch64-unknown-linux-ohos/clang -Z unstable-options -C symbol-mangling-version=v0 -Z panic-in-drop=abort -C codegen-units=1 -C debuginfo=1 -C embed-bitcode=yes -Z threads=377 -C link-arg=-Wl,--build-id=sha1 -Z binary-dep-depinfo ```
…e, r=nnethercote Fix types being marked as dead when they are inferred generic arguments Previously usages of a type in a pattern were ignored. This is incorrect, since if the type is in a pattern we're clearly producing it in the expression we're matching against. I think this `in_pat` check was meant to be only for variants, which we should indeed ignore since we can just remove the match arm that matches the pattern. Please double check my logic here since this is my first time touching the dead-code pass and I'm not 100% sure this is what the `self.in_pat` check was for. Fixes rust-lang#148144
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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 Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Oct 31, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 31, 2025

📌 Commit 224aab4 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 31, 2025
@bors
Copy link
Collaborator

bors commented Oct 31, 2025

⌛ Testing commit 224aab4 with merge 647f153...

@bors
Copy link
Collaborator

bors commented Oct 31, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 647f153 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 31, 2025
@bors bors merged commit 647f153 into rust-lang:master Oct 31, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Oct 31, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#144291 Constify trait aliases 05ba15ac8c6e77c17fe85ccc5d1f726f62a85476 (link)
#147633 Add new --bypass-ignore-backends option 30308e32ca6a5a1dfe323c1be23890ef962e5a25 (link)
#148252 Improve diagnose for unconditional panic when resource limit 088b0586b59bbc44c00b9c51fc45c324ae11c485 (link)
#148262 Fix types being marked as dead when they are inferred gener… c68aab3555341abee1e6fa9c9ab887aad1a424a9 (link)

previous master: ab4960e680

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing ab4960e (parent) -> 647f153 (this PR)

Test differences

Show 433 test diffs

Stage 0

  • errors::verify_parse_asm_expected_register_class_or_explicit_register_186: [missing] -> pass (J2)
  • errors::verify_parse_asm_underscore_input_179: [missing] -> pass (J2)
  • errors::verify_parse_async_impl_173: pass -> [missing] (J2)
  • errors::verify_parse_at_dot_dot_in_struct_pattern_128: [missing] -> pass (J2)
  • errors::verify_parse_attr_after_generic_146: pass -> [missing] (J2)
  • errors::verify_parse_attr_without_generics_147: pass -> [missing] (J2)
  • errors::verify_parse_bad_item_kind_156: [missing] -> pass (J2)
  • errors::verify_parse_bad_item_kind_157: pass -> [missing] (J2)
  • errors::verify_parse_bad_return_type_notation_output_143: [missing] -> pass (J2)
  • errors::verify_parse_binder_before_modifiers_175: [missing] -> pass (J2)
  • errors::verify_parse_cannot_be_raw_ident_107: [missing] -> pass (J2)
  • errors::verify_parse_dot_dot_dot_for_remaining_fields_130: [missing] -> pass (J2)
  • errors::verify_parse_dot_dot_dot_range_to_pattern_not_allowed_126: [missing] -> pass (J2)
  • errors::verify_parse_dot_dot_dot_range_to_pattern_not_allowed_127: pass -> [missing] (J2)
  • errors::verify_parse_dotdotdot_rest_type_141: [missing] -> pass (J2)
  • errors::verify_parse_expect_label_found_ident_152: [missing] -> pass (J2)
  • errors::verify_parse_fn_pointer_cannot_be_async_139: [missing] -> pass (J2)
  • errors::verify_parse_fn_pointer_cannot_be_async_140: pass -> [missing] (J2)
  • errors::verify_parse_fn_pointer_cannot_be_const_138: [missing] -> pass (J2)
  • errors::verify_parse_fn_pointer_cannot_be_const_139: pass -> [missing] (J2)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_169: [missing] -> pass (J2)
  • errors::verify_parse_invalid_digit_literal_113: [missing] -> pass (J2)
  • errors::verify_parse_invalid_offset_of_172: pass -> [missing] (J2)
  • errors::verify_parse_keyword_lifetime_109: [missing] -> pass (J2)
  • errors::verify_parse_keyword_lifetime_110: pass -> [missing] (J2)
  • errors::verify_parse_kw_bad_case_165: [missing] -> pass (J2)
  • errors::verify_parse_lifetime_in_eq_constraint_150: pass -> [missing] (J2)
  • errors::verify_parse_macro_invocation_visibility_161: pass -> [missing] (J2)
  • errors::verify_parse_macro_rules_visibility_159: [missing] -> pass (J2)
  • errors::verify_parse_modifier_lifetime_151: pass -> [missing] (J2)
  • errors::verify_parse_modifiers_and_polarity_178: pass -> [missing] (J2)
  • errors::verify_parse_multiple_where_clauses_103: pass -> [missing] (J2)
  • errors::verify_parse_mut_on_nested_ident_pattern_123: [missing] -> pass (J2)
  • errors::verify_parse_mut_on_nested_ident_pattern_124: pass -> [missing] (J2)
  • errors::verify_parse_mut_on_non_ident_pattern_124: [missing] -> pass (J2)
  • errors::verify_parse_need_plus_after_trait_object_lifetime_135: pass -> [missing] (J2)
  • errors::verify_parse_nested_c_variadic_type_140: [missing] -> pass (J2)
  • errors::verify_parse_nonterminal_expected_lifetime_106: [missing] -> pass (J2)
  • errors::verify_parse_nonterminal_expected_lifetime_107: pass -> [missing] (J2)
  • errors::verify_parse_trait_alias_cannot_be_const_88: pass -> [missing] (J2)
  • errors::verify_parse_trait_alias_cannot_be_unsafe_89: pass -> [missing] (J2)
  • errors::verify_parse_underscore_literal_suffix_151: [missing] -> pass (J2)
  • errors::verify_parse_unexpected_self_in_generic_parameters_101: pass -> [missing] (J2)
  • errors::verify_parse_unexpected_token_after_struct_name_found_keyword_95: [missing] -> pass (J2)
  • errors::verify_parse_unexpected_token_after_struct_name_found_metavar_98: [missing] -> pass (J2)
  • errors::verify_parse_unexpected_token_after_struct_name_found_other_99: [missing] -> pass (J2)
  • errors::verify_parse_unexpected_token_after_struct_name_found_reserved_identifier_94: [missing] -> pass (J2)
  • errors::verify_parse_unexpected_token_after_struct_name_found_reserved_keyword_97: pass -> [missing] (J2)

Stage 1

  • errors::verify_parse_asm_expected_comma_183: pass -> [missing] (J1)
  • errors::verify_parse_asm_expected_other_183: [missing] -> pass (J1)
  • errors::verify_parse_asm_expected_string_literal_186: pass -> [missing] (J1)
  • errors::verify_parse_asm_non_abi_185: pass -> [missing] (J1)
  • errors::verify_parse_asm_requires_template_182: pass -> [missing] (J1)
  • errors::verify_parse_asm_unsupported_operand_178: [missing] -> pass (J1)
  • errors::verify_parse_asm_unsupported_operand_179: pass -> [missing] (J1)
  • errors::verify_parse_bad_return_type_notation_output_144: pass -> [missing] (J1)
  • errors::verify_parse_binder_and_polarity_176: [missing] -> pass (J1)
  • errors::verify_parse_binder_before_modifiers_176: pass -> [missing] (J1)
  • errors::verify_parse_cannot_be_raw_lifetime_108: [missing] -> pass (J1)
  • errors::verify_parse_const_global_cannot_be_mutable_91: [missing] -> pass (J1)
  • errors::verify_parse_dot_dot_dot_for_remaining_fields_130: [missing] -> pass (J1)
  • errors::verify_parse_dot_dot_dot_range_to_pattern_not_allowed_126: [missing] -> pass (J1)
  • errors::verify_parse_dot_dot_dot_range_to_pattern_not_allowed_127: pass -> [missing] (J1)
  • errors::verify_parse_dot_dot_range_attribute_174: [missing] -> pass (J1)
  • errors::verify_parse_dot_dot_range_attribute_175: pass -> [missing] (J1)
  • errors::verify_parse_dyn_after_mut_137: [missing] -> pass (J1)
  • errors::verify_parse_enum_struct_mutually_exclusive_93: [missing] -> pass (J1)
  • errors::verify_parse_expected_comma_after_pattern_field_131: [missing] -> pass (J1)
  • errors::verify_parse_expected_mut_or_const_in_raw_pointer_type_136: pass -> [missing] (J1)
  • errors::verify_parse_expr_rarrow_call_174: pass -> [missing] (J1)
  • errors::verify_parse_fn_pointer_cannot_be_async_139: [missing] -> pass (J1)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_170: pass -> [missing] (J1)
  • errors::verify_parse_invalid_dyn_keyword_142: [missing] -> pass (J1)
  • errors::verify_parse_invalid_offset_of_171: [missing] -> pass (J1)
  • errors::verify_parse_keyword_label_110: [missing] -> pass (J1)
  • errors::verify_parse_keyword_lifetime_110: pass -> [missing] (J1)
  • errors::verify_parse_lifetime_after_mut_136: [missing] -> pass (J1)
  • errors::verify_parse_lifetime_after_mut_137: pass -> [missing] (J1)
  • errors::verify_parse_macro_name_remove_bang_159: pass -> [missing] (J1)
  • errors::verify_parse_macro_rules_visibility_160: pass -> [missing] (J1)
  • errors::verify_parse_missing_plus_in_bounds_165: pass -> [missing] (J1)
  • errors::verify_parse_modifier_lifetime_150: [missing] -> pass (J1)
  • errors::verify_parse_modifier_lifetime_151: pass -> [missing] (J1)
  • errors::verify_parse_multiple_where_clauses_103: pass -> [missing] (J1)
  • errors::verify_parse_nested_c_variadic_type_140: [missing] -> pass (J1)
  • errors::verify_parse_nonterminal_expected_ident_106: pass -> [missing] (J1)
  • errors::verify_parse_nonterminal_expected_item_keyword_103: [missing] -> pass (J1)
  • errors::verify_parse_nonterminal_expected_lifetime_107: pass -> [missing] (J1)
  • errors::verify_parse_pattern_on_wrong_side_of_at_121: pass -> [missing] (J1)
  • errors::verify_parse_static_with_generics_168: [missing] -> pass (J1)
  • errors::verify_parse_unexpected_token_after_struct_name_found_doc_comment_98: pass -> [missing] (J1)
  • errors::verify_parse_unexpected_token_after_struct_name_found_reserved_keyword_96: [missing] -> pass (J1)
  • errors::verify_parse_unexpected_vert_vert_before_function_parameter_117: [missing] -> pass (J1)
  • errors::verify_parse_unmatched_angle_163: [missing] -> pass (J1)
  • errors::verify_parse_where_generics_147: [missing] -> pass (J1)
  • errors::verify_parse_where_generics_148: pass -> [missing] (J1)
  • [ui] tests/ui/consts/trait_alias.rs#fail: [missing] -> pass (J2)
  • [ui] tests/ui/consts/trait_alias_method_call.rs: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/consts/trait_alias.rs#pass: [missing] -> pass (J0)
  • [ui] tests/ui/lint/dead-code/inferred-generic-arg.rs: [missing] -> pass (J0)

(and 310 additional test diffs)

Additionally, 23 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \ test-dashboard 647f1536d2f50b203ca9a67396225c4f7771e1c8 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-aarch64-apple: 6830.4s -> 8666.0s (+26.9%)
  2. aarch64-apple: 10651.9s -> 8177.3s (-23.2%)
  3. pr-check-1: 1946.0s -> 1529.6s (-21.4%)
  4. x86_64-gnu-llvm-20-1: 3748.3s -> 3197.5s (-14.7%)
  5. dist-various-1: 4460.3s -> 3892.4s (-12.7%)
  6. dist-i586-gnu-i586-i686-musl: 4861.2s -> 5375.9s (+10.6%)
  7. dist-apple-various: 4081.7s -> 3683.6s (-9.8%)
  8. dist-x86_64-mingw: 8225.4s -> 8967.5s (+9.0%)
  9. x86_64-gnu-nopt: 7328.7s -> 6703.2s (-8.5%)
  10. dist-ohos-aarch64: 4227.0s -> 4565.4s (+8.0%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (647f153): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -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
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.3% [-0.3%, -0.3%] 3
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary 2.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)
2.2% [2.2%, 2.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

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

Binary size

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

Bootstrap: 473.772s -> 474.981s (0.26%)
Artifact size: 390.88 MiB -> 390.81 MiB (-0.02%)

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

Labels

A-compiletest Area: The compiletest test runner A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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 Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

8 participants