Skip to content

Rollup of 12 pull requests#152063

Merged
rust-bors[bot] merged 28 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-EwTnVaj
Feb 3, 2026
Merged

Rollup of 12 pull requests#152063
rust-bors[bot] merged 28 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-EwTnVaj

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

mu001999 and others added 28 commits January 28, 2026 08:38
This has the nice side-effect of eliminating `rustc_codegen_ssa`'s
dependency on `rustc_query_system`. (Indeed, looking through such
dependencies was how I found this.)
It probably wasn't committed after an earlier change.
Show largest job duration changes in hours and minutes in the post-merge report

This was suggested by... someone, somewhere. But it's a good idea.

See rust-lang#152025 (comment) - now instead of seconds it would show this:

# Job duration changes
1. [dist-apple-various](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011925): 1h 3m -> 1h 29m (+41.5%)
2. [dist-x86_64-apple](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011972): 2h 1m -> 2h 21m (+16.4%)
3. [dist-ohos-x86_64](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011829): 1h 11m -> 1h 19m (+12.4%)
4. [x86_64-gnu-llvm-20](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011909): 1h 9m -> 1h 17m (+11.9%)
5. [pr-check-1](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011862): 32m 27s -> 28m 44s (-11.4%)
6. [tidy](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011845): 2m 37s -> 2m 52s (+9.9%)
7. [armhf-gnu](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011763): 1h 22m -> 1h 30m (+9.5%)
8. [dist-aarch64-apple](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011941): 1h 54m -> 1h 44m (-9.1%)
9. [x86_64-gnu-llvm-21-3](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011924): 1h 45m -> 1h 54m (+9.1%)
10. [x86_64-gnu-llvm-21-1](https://github.com/rust-lang/rust/actions/runs/21617345733#summary-62299011923): 1h 9m -> 1h 15m (+9.0%)
…ukang

coverage: Add a test case for a previously-unknown span mismatch

- This is a revised version of rust-lang#152036.
---

In rust-lang#145643, a defensive check was added to detect spans that unexpectedly don't match the context of the function body span. There was no known way to trigger that condition, so a `debug_assert!` was added to make violations easier to notice.

A way to trigger the condition using nested macro expansions was subsequently found and reported as an ICE (in debug-assertion builds) in rust-lang#147339.

Now that we have a concrete example to investigate, we can remove the `debug_assert!` so that there is no ICE in debug-assertion builds.

- Fixes rust-lang#147339.

r? chenyukang
…t, r=lqd

Convert to inline diagnostics in `rustc_infer`

For rust-lang#151366
…BoxyUwU

Forbid manual `Unpin` impls for structurally pinned types

Part of [`pin_ergonomics`](rust-lang#130494). It forbids to `impl Unpin for T` where `T` is an ADT marked with `#[pin_v2]`.
…yUwU

Check proj's parent is trait or not when checking dyn compatibility

Fixes rust-lang#151708

When checking dyn compatibility, `proj` here may point to free const whose parent is not trait. Then `TraitRef::from_assoc` will call `generics_of` on the wrong parent.

After this change, the following case without `#[type_const]` will still emit ICE same to rust-lang#149066, but different to the ICE reported in rust-lang#151708
```rust
#![feature(min_generic_const_args)]

// #[type_const]
const N: usize = 2;

trait CollectArray {
    fn inner_array(&self) -> [i32; N];
}
```

r? @BoxyUwU
…anBrouwer

Port `rustc_mir` to attribute parser

Tracking issue: rust-lang#131229
…r=BoxyUwU

error on unsized AnonConsts

The constant evaluator does not support unsized types, however, unsized AnonConsts were never checked to be Sized, so no errors were generated on them and the constant was attempted to be constant evaluated. This caused the constant evaluator to ICE.

Add a special case for AnonConsts in rustc_hir_typeck, as suggested by @BoxyUwU in rust-lang#137582. There is no checking for `#![feature(unsized_const_params)]` which should eventually revert this check when the feature becomes more implemented.

That issue is assigned to @el-ev but I started looking into this as a jumping off point / motivation to learn some compiler stuff, and I eventually got to the point of fixing it, so I'm submitting a PR anyway. So just a ping/FYI to @el-ev that I'm submitting this, sorry!

There are three relevant github issues to this ICE that I could find:

- fixes rust-lang#137582
- fixes rust-lang#151591

The similar issue rust-lang#104685 is NOT fixed, it might be good to glance at that before verifying this particular fix, to make sure this fix is actually in the right place. (I haven't looked at it much)

r? @BoxyUwU
Convert to inline diagnostics in `rustc_attr_parsing`

Converts a crate for rust-lang#151366
This PR is almost completely autogenerated by a hacky script I have locally :)
…-derives, r=Zalathar

`NativeLib` cleanups

Improvements to `NativeLib`.

r? @Zalathar
…-Simulacrum

disable socket tests in Miri

rust-lang#150428 added some tests that do not work in Miri since we do not support sockets.

r? @Mark-Simulacrum
…rt, r=jdonszelmann

Convert to inline diagnostics in `rustc_query_system`

For rust-lang#151366 (comment)

r? @jdonszelmann (or anyone else who feels like it)
…s, r=GuillaumeGomez

Try to fix `rustdoc-gui/globals.goml` flakyness

Part of rust-lang#93784.

Hopefully this one fixes it...

r? ghost
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Feb 3, 2026
@rustbot rustbot added the A-attributes Area: Attributes (`#[…]`, `#![…]`) label Feb 3, 2026
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
REPOSITORY                                   TAG       IMAGE ID       CREATED      SIZE
ghcr.io/dependabot/dependabot-updater-core   latest    bcec0b4e062b   8 days ago   783MB
=> Removing docker images...
Deleted Images:
untagged: ghcr.io/dependabot/dependabot-updater-core:latest
untagged: ghcr.io/dependabot/dependabot-updater-core@sha256:b662be51f7b8ef7e2c8464428f14e49cb79c36aa9afb7ecb9221dfe0f507050c
deleted: sha256:bcec0b4e062b5ffe11cc1c2729558c0cd96621c0271ab5e97ff3a56e0c25045a
deleted: sha256:64e147d5e54d9be8b8aa322e511cda02296eda4b8b8d063c6a314833aca50e29
deleted: sha256:5cba409bb463f4e7fa1a19f695450170422582c1bc7c0e934d893b4e5f558bc6
deleted: sha256:cddc6ebd344b0111eaab170ead1dfda24acdfe865ed8a12599a34d338fa8e28b
deleted: sha256:2412c3f334d79134573cd45e657fb6cc0abd75bef3881458b0d498d936545c8d
---
tests/ui/drop_non_drop.rs ... ok
tests/ui/double_parens.rs ... ok
tests/ui/duplicate_underscore_argument.rs ... ok
tests/ui/duplicated_attributes.rs ... ok
tests/ui/duration_suboptimal_units.rs ... ok
tests/ui/duration_suboptimal_units_days_weeks.rs ... ok
tests/ui/duration_subsec.rs ... ok
tests/ui/double_parens.fixed ... ok
tests/ui/duration_suboptimal_units_days_weeks.fixed ... ok
tests/ui/duration_suboptimal_units.fixed ... ok
tests/ui/duration_subsec.fixed ... ok
tests/ui/else_if_without_else.rs ... ok
tests/ui/elidable_lifetime_names.rs ... ok
tests/ui/eager_transmute.rs ... ok
tests/ui/empty_docs.rs ... ok
---
...............................................    (147/147)

======== tests/rustdoc-gui/globals.goml ========

[ERROR] line 14: Error: The window properties still all match: for command `wait-for-window-property-false: {"searchIndex": null}`
    at <file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/doc/test_docs/index.html?search=Foo>

======== tests/rustdoc-gui/search-result-display.goml ========

[WARNING] line 39: Delta is 0 for "x", maybe try to use `compare-elements-position` instead?

@JonathanBrouwer
Copy link
Contributor Author

JonathanBrouwer commented Feb 3, 2026

@bors retry
(@GuillaumeGomez :c)

@rust-bors rust-bors bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 3, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 3, 2026

💔 Test for 01572a2 failed: CI. Failed job:

@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 3, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 3, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 11m 51s
Pushing 366a1b9 to main...

@rust-bors rust-bors bot merged commit 366a1b9 into rust-lang:main Feb 3, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Feb 3, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2026

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 55407b8 (parent) -> 366a1b9 (this PR)

Test differences

Show 230 test diffs

Stage 0

  • error::verify_query_system_reentrant_0: pass -> [missing] (J1)
  • errors::verify_infer_opaque_hidden_type_0: pass -> [missing] (J1)
  • errors::verify_mir_dataflow_path_must_end_in_filename_0: pass -> [missing] (J1)
  • errors::verify_mir_dataflow_peek_argument_not_a_local_4: [missing] -> pass (J1)
  • errors::verify_mir_dataflow_peek_argument_not_a_local_8: pass -> [missing] (J1)
  • errors::verify_mir_dataflow_peek_argument_untracked_9: pass -> [missing] (J1)
  • errors::verify_mir_dataflow_peek_bit_not_set_3: [missing] -> pass (J1)
  • errors::verify_mir_dataflow_peek_must_be_not_temporary_6: pass -> [missing] (J1)
  • errors::verify_mir_dataflow_peek_must_be_place_or_ref_place_1: [missing] -> pass (J1)
  • errors::verify_mir_dataflow_peek_must_be_place_or_ref_place_5: pass -> [missing] (J1)
  • errors::verify_mir_dataflow_requires_an_argument_3: pass -> [missing] (J1)
  • errors::verify_mir_dataflow_stop_after_dataflow_ended_compilation_0: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_as_needed_compatibility_61: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_alias_bad_char_2: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_alias_empty_1: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_alias_malformed_64: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_alias_start_end_3: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_attr_not_crate_level_4: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_attribute_not_attribute_6: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_keyword_not_keyword_5: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_empty_confusables_39: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_empty_link_name_50: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_expected_single_version_literal_24: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_expects_features_27: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_align_one_arg_19: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_expect_literal_integer_20: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_packed_expect_integer_14: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_invalid_alignment_value_41: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_invalid_link_modifier_56: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_invalid_repr_align_need_arg_17: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_invalid_repr_generic_18: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_invalid_repr_hint_no_value_16: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_limit_invalid_63: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_link_ordinal_out_of_range_46: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_missing_feature_10: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_missing_issue_12: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_multiple_modifiers_57: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_naked_functions_incompatible_attribute_45: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_objc_class_expected_string_literal_36: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_objc_selector_expected_string_literal_37: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_raw_dylib_only_windows_55: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_repr_ident_42: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_rustc_scalable_vector_count_out_of_range_47: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_soft_no_args_29: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_stability_outside_std_38: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_suffixed_literal_in_attribute_49: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_unused_multiple_31: pass -> [missing] (J1)

Stage 1

  • error::verify_query_system_increment_compilation_1: pass -> [missing] (J0)
  • errors::verify_mir_dataflow_peek_argument_not_a_local_4: [missing] -> pass (J0)
  • errors::verify_mir_dataflow_peek_argument_not_a_local_8: pass -> [missing] (J0)
  • errors::verify_mir_dataflow_peek_bit_not_set_3: [missing] -> pass (J0)
  • errors::verify_mir_dataflow_peek_must_be_not_temporary_6: pass -> [missing] (J0)
  • errors::verify_mir_dataflow_stop_after_dataflow_ended_compilation_0: [missing] -> pass (J0)
  • errors::verify_mir_dataflow_stop_after_dataflow_ended_compilation_4: pass -> [missing] (J0)
  • errors::verify_mir_dataflow_unknown_formatter_1: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_as_needed_compatibility_61: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_bundle_needs_static_59: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_doc_alias_bad_char_2: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_doc_alias_empty_1: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_doc_alias_start_end_3: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_doc_attribute_not_attribute_6: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_doc_keyword_not_keyword_5: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_empty_confusables_39: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_empty_link_name_50: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_expected_version_literal_25: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_expects_features_27: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_import_name_type_raw_62: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_import_name_type_x86_58: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_incompatible_wasm_link_52: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_expect_literal_integer_20: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_packed_expect_integer_14: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_invalid_link_modifier_56: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_invalid_repr_align_need_arg_17: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_invalid_repr_generic_18: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_invalid_repr_hint_no_paren_15: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_invalid_repr_hint_no_value_16: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_missing_since_7: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_non_ident_feature_11: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_null_on_export_32: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_null_on_link_section_33: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_objc_selector_expected_string_literal_37: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_rustc_scalable_vector_count_out_of_range_47: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_soft_no_args_29: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_stability_outside_std_38: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_suffixed_literal_in_attribute_49: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_unstable_feature_bound_incompatible_stability_44: pass -> [missing] (J0)
  • [coverage-map] tests/coverage/macros/context-mismatch-issue-147339.rs: [missing] -> pass (J1)
  • [coverage-run] tests/coverage/macros/context-mismatch-issue-147339.rs: [missing] -> ignore (ignored when the profiler runtime is not available) (J1)
  • [ui] tests/ui/const-generics/adt_const_params/unsized-anon-const-err-2.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/adt_const_params/unsized-anon-const-func-err.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/adt_const_params/unsized-anon-const-struct-err.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/type-const-used-in-trait.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/const-generics/adt_const_params/unsized-anon-const-err-1.rs: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/adt_const_params/unsized-anon-const-struct-err.rs: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/type-const-used-in-trait.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pin-ergonomics/impl-unpin.rs#adt: [missing] -> pass (J2)
  • [ui] tests/ui/pin-ergonomics/impl-unpin.rs#tait: [missing] -> pass (J2)
  • [ui] tests/ui/pin-ergonomics/impl-unpin.rs#ty_alias: [missing] -> pass (J2)
  • [crashes] tests/crashes/137582.rs: pass -> [missing] (J3)
  • [coverage-run] tests/coverage/macros/context-mismatch-issue-147339.rs: [missing] -> ignore (ignored when cross-compiling) (J4)

(and 96 additional test diffs)

Additionally, 34 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 366a1b93e7f466ebe559477add05f064873d0c71 --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. x86_64-gnu-llvm-21-3: 2h 2m -> 1h 42m (-15.9%)
  2. x86_64-gnu-tools: 1h 5m -> 54m 47s (-15.8%)
  3. pr-check-1: 32m 24s -> 27m 19s (-15.7%)
  4. x86_64-gnu-llvm-20: 1h 16m -> 1h 4m (-15.6%)
  5. aarch64-gnu-debug: 1h 17m -> 1h 6m (-14.2%)
  6. aarch64-apple: 3h 33m -> 3h 5m (-13.1%)
  7. i686-gnu-2: 1h 39m -> 1h 27m (-12.2%)
  8. aarch64-msvc-1: 1h 52m -> 2h 5m (+11.5%)
  9. dist-x86_64-apple: 2h 21m -> 2h 37m (+11.1%)
  10. dist-armv7-linux: 1h 36m -> 1h 26m (-10.3%)
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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149263 Forbid manual Unpin impls for structurally pinned types 95dcb3ba1fc94b8c3e15ecce4fa0917104287525 (link)
#151754 Check proj's parent is trait or not when checking dyn compa… e154bb0f423074f1f86ddb49780bc47e1c79cc73 (link)
#151848 Port rustc_mir to attribute parser 28368f3eaf969118cde9bf01bc83170dcc23fe1b (link)
#151874 error on unsized AnonConsts e6fc375b8a0135a068de976a1fa190f18b509bbc (link)
#151944 Convert to inline diagnostics in rustc_attr_parsing a2af88dd5e2d1d348a4f14aee160461607b7c656 (link)
#152019 NativeLib cleanups 69f7bd612e43eec539c9179598de1c1f16ac98c4 (link)
#152029 disable socket tests in Miri 45f3b4d054033d106ee2a07f6ca225e1193ed681 (link)
#152034 Show largest job duration changes in hours and minutes in t… a1b0c2a7d06d6c5d9f6eff0f1e0536e60df9682b (link)
#152039 coverage: Add a test case for a previously-unknown span mis… 529d437d96738fd13f6f5894a0b5d4ef4dc5d9d2 (link)
#152041 Convert to inline diagnostics in rustc_query_system dc580cfd3cd4ad2f7743f24f25b44e6b9d747d0a (link)
#152045 Convert to inline diagnostics in rustc_infer 5eb6201adb4b20ea9e7c65aca3018ba14892c315 (link)
#152050 Try to fix rustdoc-gui/globals.goml flakyness c99ee425bd7625060dd1eaa0ec66c9010e146ce3 (link)

previous master: 55407b8cdb

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

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (366a1b9): comparison URL.

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

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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.3% [0.2%, 0.7%] 12
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.4% [-0.7%, -0.2%] 14
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -0.0%)

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

mean range count
Regressions ❌
(primary)
1.1% [1.0%, 1.1%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.2% [-2.2%, -2.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.0% [-2.2%, 1.1%] 3

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: 471.991s -> 472.721s (0.15%)
Artifact size: 397.70 MiB -> 397.76 MiB (0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Feb 3, 2026
@JonathanBrouwer
Copy link
Contributor Author

Perf impact is fully explained by #151944
I'll look more into it there
@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Feb 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library 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-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.