Skip to content

Rollup of 12 pull requests - #162798

Merged
rust-bors[bot] merged 34 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-55EDnIG
Sep 15, 2026
Merged

rust-bors[bot] merged 34 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-55EDnIG

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

KevinA-cpu and others added 30 commits September 2, 2026 23:59
People have fallen over the issue where `target-cpu=cortex-r5` unexpectedly turns on FPU support, even on an EABI soft-float target. So this update attempts to document the full set of Armv7-R processors, their FPU options, and how to set things up for the precise combination you have.

It is modelled after the Armv7E-M documentation.
…pture lint

`drop_location_span` assumed that every closure had a valid drop location, which could cause an ICE for closures in unsupported contexts. This changes `drop_location_span` to return `Option<Span>`. If there is no valid drop location, the migration lint is not emitted because its drop-order diagnostic would be misleading. The span is computed before creating `MigrationLint` and stored there so it can be reused for the drop-order labels.
the suggestion rewrote the borrow where it was written. for a borrow coming from a macro body that is the macro definition rather than the call site, and for a macro from another crate a file the user cannot edit. it was machine applicable so rustfix would apply it and a macro invoked at more than one call site could stop compiling.

gate it on can_be_used_for_suggestions so those cases fall through to the existing note that the trait is implemented for the mutable borrow but not the shared one.
Most of them don't need to be public, but there are scenarios where
thing is private on one platform but public on the other, so having a
lint on all the time gets complicated.

Added #![warn(unreachable_pub)] in library/std/src/lib.rs
Added #[allow(unreachable_pub)] on top of std::os and std::sys specifically.
Add regression test for do_not_recommend on a single impl candidate
This reverts commit d4e6b8f.

Reverted commit contains incorrect comments,
does not implement all the functionality it claims to,
and lacks test coverage.
As previously written, AGENTS.md prohibited my LLM from performing edits
as part of a prototype that I never intended to upstream. This is
explicitly permitted by the policy.

Text drafted by Claude Fable 5.1 and edited by me.

Change
[pre-approved](https://rust-lang.zulipchat.com/#narrow/channel/606558-llm-reviews/topic/AGENTS.2Emd.20forbidding.20experimentation/near/624161741) by @jyn514
…2, r=Amanieu

Remove d32 feature from 32-bit Arm targets

Fixes rust-lang#159973

In rust-lang#149512 I removed `-d32` from some specs, but since LLVM enables `neon` by default for v7 targets `d32` was left enabled while it should be optional on this target. For a similar reason `-d32` was removed from some armv6 targets and has been readded.

This PR adds a test to ensure this specific instance does not happen again and has been tested locally on armv7-unknown-linux-gnueabihf, armv7a-none-eabihf and arm-unknown-linux-gnueabihf.

It might be a good idea in general to have a test that runs `--print cfg` and captures the set of rust target features enabled to show when PRs change them, but most of these targets are not run in Rust's CI so it's out of scope for this issue.

For reference, here is the manually-expanded LLVM features and their implications - necessary as these targets rely on a feature from LLVM that Rust doesn't yet expose:

```
vfp4 -> vfp3 + fp16 + vfp4d16 + vfp4sp
vfp4d16 -> vfp3d16 + fp16 + fp64 + vfp4d16sp
vfp4sp -> vfp3sp + fp16 + d32 + vfp4d16sp
vfp4d16sp -> vfp3d16sp + fp16
vfp3 -> vfp2 + vfp3d16 + vfp3sp
vfp3d16 -> vfp2 + fp64 + vfp3d16sp
vfp3sp -> vfp2 + d32 + vfp3d16sp
vfp3d16sp -> vfp2sp
vfp2 -> vfp2sp + fp64
vfp2sp -> fpregs
```
…k-Simulacrum

libtest: never iterate over all tests in `--exact` mode

This should help with rust-lang/miri#5013:

When running `cargo miri nextest`, nextest spawns one Miri instance for each test of the crate. If the crate has a lot of tests, a non-trivial amount of time is spent in the test harness before it even starts running the test. Turns out almost half that time is spent just making copies of all the `TestDescAndFn`. That seems silly, we have a perfectly fine static array of those sitting around in the code generated by `--test` expansion, let's just use references to that array.

So this changes the `TestList` used to represent the unfiltered list of tests to use borrowed rather than owned types. That changes ripples outwards. The entry points used by the `--test` harness remain mostly unchanged (except that I renamed them as the old name did not make sense), but rustdoc has been using the old fully-owned API.

Rustdoc has two codepaths, "standalone" and "merged".
- For "merged", the fix is easy -- like the `--test` harness, this can just generate a static array full of `StaticTestFn` rather than populating a `Vec` at runtime.
- For "standalone", things are more tricky. We need to construct an `&[&TestDescAndFn]`, which requires filling a new vector with references to the entries of an existing `Vec<TestDescAndFn>`. This also fundamentally relies on the support for dynamic test functions in libtest. Those must now always be cloneable, so they are now internally stored in `Arc` and must be `Fn`, not `FnOnce`. So compared to before there's now one more big `Vec` to fill with references to all tests, as well as some `Arc::clone`. OTOH this mode runs a full separate process for each test so I doubt this extra cost is noticeable.
  The alternative is to keep support for `FnOnce` dynamic tests in libtest, which is highly non-trivial due to having to plumb multiple layers of `Cow`-like handling through everything. I don't think it's worth it, given that dynamic tests are only used by "standalone" rustdoc and by the tests testing libtest.

Overall this saves more than 1s when running coretests (which has 2787 tests) with a hot incremental cache with `--exact char::test_is_numeric`.
Before: 7.606s
After: 6.484s
Given that most of that time is actually spent in rustc, not in the interpreter, that is a very big speedup for the interpreter part.
…tebank

Filter do_not_recommend impls before handling a single candidate

Fixed rust-lang#160717: a single candidate could appear in the suggestion despite `do_not_recommend`.
The `if` block now executes only when there is exactly one implementation candidate and that candidate is not marked `do_not_recommend`.
A new test checks both solvers; it fails without the fix and passes with it.
These tests passed:
    - ./x test tests/ui/diagnostic_namespace/do_not_recommend --force-rerun
    - ./x test tests/ui/try-trait --force-rerun
    - ./x test tidy
Used llm for code navigation.
… r=GuillaumeGomez,notriddle

rustdoc: Revert "fix bare urls split text"

This reverts commit d4e6b8f.

Reverted commit contains incorrect comments,
does not implement all the functionality it claims to, and lacks test coverage.

If someone wishes to re-add the functionality, it should be done as postprocessing after the regex match, as regex is not capable of handling arbitrary nesting of matched pairs.  Additionally, future PRs attempting to reinstate this should frame it as a change to a fuzzy heuristic, not as a simple "fix".

r? @GuillaumeGomez
…e, r=Enselic

hir_typeck: Don't ICE on closures without drop location in closure capture lint

Resolves rust-lang#156288.

`drop_location_span` assumed that every closure had a valid drop location, which could cause an ICE for closures in unsupported contexts. This changes `drop_location_span` to return `Option<Span>`. If there is no valid drop location, the migration lint is not emitted because its drop-order diagnostic would be misleading. The span is computed before creating `MigrationLint` and stored there so it can be reused for the drop-order labels.
std: make a lot of items crate private

1. Added `#![warn(unreachable_pub)]` in `library/std/src/lib.rs`
2. Added `#[allow(unreachable_pub)]` on top of `std::os` and `std::sys` specifically.

r? clarfonthey
…s-not-trigger-note-issue-140171, r=chenyukang

Suggest keyword order for `extern "C" const unsafe fn`

closes rust-lang#140171

This implementation does not accurately follow the desired output in the issue as it could introduces a much bigger change, where as the one item suggestion approach is also decently helpful and sufficient already.
…t, r=Urgau

Clean up `test/rustdoc-html` folder by moving tests where appropriate

<del>Gonna likely continue a bit more before assigning a reviewer.</del>

CI is happy and I think it's already big enough for a first batch.

r? ghost
…on-in-macro, r=chenyukang

dont suggest changing the mutability of a borrow that comes from a macro

`suggest_change_mut` has no expansion guard so a borrow written in a macro body gets a `MachineApplicable` help pointing inside the macro or at a file in a dependency. with more than one local call site applying it forces the mutable borrow on every expansion and swaps `E0525` for `E0596`. adds `span.can_be_used_for_suggestions()` to the guard falling through to the existing note.

with a single local call site the suggestion is correct. the span is the defect.

the guard is in the shared helper so it covers all three call sites. full `tests/ui` 21979 passed 0 failed with zero existing baselines re blessed.

r? @chenyukang

cc @davidtwco
… r=Mark-Simulacrum

Fix `path_trailing_sep` methods for Windows verbatim paths

Normally on Windows the path separator is either `\` or `/` but for verbatim paths it is only `\`. Currently the unstable `path_trailing_sep` methods (rust-lang#142503) do not take that into account and just use the general `is_sep_byte` method.

This PR changes it to use the internal `Components::is_sep(self, b)` method that takes into account verbatim paths.
…khyperia

Improve Armv7-R documentation

People have [fallen over the issue](rust-lang#128448) where `target-cpu=cortex-r5` unexpectedly turns on FPU support, even on an EABI soft-float target. So this update attempts to document the full set of Armv7-R processors, their FPU options, and how to set things up for the precise combination you have.

It is modelled after the Armv7E-M documentation.

I know the features it recommends are "unstable" but I really do not know any other way of controlling what kind of FPU `rustc` is generating code for. I'd love a simple `-Ctarget-cpu=cortex-r5 -Ctarget-fpu=vfp3-d16-sp` option but we don't have one at this time.

This actually matters more on Armv7-R than on Armv7E-M, because `rustc` currently assumes a double-precision FPU and some hardware only has a single-precision FPU. So you *need* target features to make the target work on that hardware.

* [x] No LLMs were used in the creation of this PR
AGENTS.md: Permit local experimentation, per the online policy.

As previously written, AGENTS.md prohibited my LLM from performing edits as part of a prototype that I never intended to upstream. This is explicitly permitted by the policy.

Text drafted by Claude Fable 5.1 and edited by me.

I ran 3 or 4 test sessions with my edits and tweaked it until it performed fairly well. It's still quite strict; it is very adamant that the user makes an explicit statement that they won't be upstreaming.

Change
[pre-approved](https://rust-lang.zulipchat.com/#narrow/channel/606558-llm-reviews/topic/AGENTS.2Emd.20forbidding.20experimentation/near/624161741) by @jyn514

r? @jyn514
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 15, 2026
@rustbot rustbot added A-rustc-dev-guide Area: rustc-dev-guide S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler 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. labels Sep 15, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

📌 Commit ab74894 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Sep 15, 2026
@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 Sep 15, 2026
@rust-bors

rust-bors Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 5m 19s
Pushing 5392d2f to main...

@github-actions

Copy link
Copy Markdown
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 c26ce70 (parent) -> 5392d2f (this PR)

Test differences

Show 347 test diffs

Stage 1

  • [rustdoc-html] tests/rustdoc-html/bad-codeblock-syntax.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock-title.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/bad-codeblock-syntax.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/codeblock-title.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/editions.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/ignore-sometimes.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/playground-arg.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/playground-empty.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/playground-none.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/short-docblock-codeblock.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/codeblock/unindent.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/custom_code_classes.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/display-hidden-items.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/doctest/ignore-sometimes.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/document-hidden-items-15347.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/footnote-ids.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/footnote-in-summary.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/footnote-reference-ids.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/footnote-reference-in-footnote-def.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/footnote/footnote-definition-without-blank-line-100638.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/footnote/footnote-ids.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/footnote/footnote-reference-ids.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/hidden-trait-methods-with-document-hidden-items.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/infinite-redirection.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/inline-rename-34473.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/playground-arg.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/playground-empty.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/playground.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/reexport/inline-default-methods.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/reexport/inline-rename-34473.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/reexport/macro-reexport-inline.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/reexport/pub-use-loop-107350.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/reexport/underscore-import-61592.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/short-docblock-codeblock.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/type-alias/primitive-local-link-121106.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/type-alias/repr.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/type-alias/same-crate-115718.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/typedef/cross-crate-115718.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/typedef/impl_trait_in_assoc_type.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/typedef/primitive-local-link-121106.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/typedef/typedef-inner-variants.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/underscore-import-61592.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/union-fields-html.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/union.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/union/union-fields-html.rs: [missing] -> pass (J1)
  • [ui] tests/ui/asm/arm-high-dregs.rs#target-cpu: [missing] -> ignore (only executed when the ABI is eabihf) (J3)
  • [ui] tests/ui/diagnostic_namespace/do_not_recommend/single-impl-candidate.rs: [missing] -> pass (J3)
  • [ui] tests/ui/parser/issues/issue-87217-keyword-order/wrong-const-async-unsafe-abi.rs: [missing] -> pass (J3)
  • [ui] tests/ui/suggestions/change-mut-borrow-in-macro.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/asm/arm-high-dregs.rs#baseline: [missing] -> ignore (only executed when the ABI is eabihf) (J4)
  • [ui (polonius)] tests/ui/asm/arm-high-dregs.rs#target-cpu: [missing] -> ignore (only executed when the ABI is eabihf) (J4)
  • [ui (polonius)] tests/ui/closures/2229_closure_analysis/incompatible-captures-without-drop-location.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/parser/issues/issue-87217-keyword-order/wrong-const-async-unsafe-abi.rs: [missing] -> pass (J4)

Stage 2

  • [rustdoc-html] tests/rustdoc-html/codeblock/custom_code_classes.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/codeblock/hidden-line.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/codeblock/playground-empty.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/codeblock/playground-syntax-error.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/codeblock/playground.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/codeblock/unindent.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/custom_code_classes.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/doctest/editions.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/document-hidden-items-15347.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/footnote-ids.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/footnote-reference-ids.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/footnote-reference-in-footnote-def.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/footnote/footnote-ids.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/footnote/footnote-reference-in-footnote-def.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/hidden-trait-methods-with-document-hidden-items.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/hidden/document-hidden-items-15347.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/infinite-redirection.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/macro-reexport-inline.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/playground-none.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/pub-use-root-path-95873.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/reexport/infinite-redirection.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/reexport/inline-rename-34473.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/reexport/pub-use-loop-107350.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/reexport/pub-use-root-path-95873.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/short-docblock-codeblock.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/summary-codeblock-31899.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/type-alias/cross-crate-115718.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/type-alias/same-crate-115718.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/typedef-inner-variants.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/typedef/cross-crate-115718.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/typedef/primitive-local-link-121106.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/typedef/typedef-inner-variants.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/underscore-import-61592.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/unindent.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/union-fields-html.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/union.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/union/union-fields-html.rs: [missing] -> pass (J0)
  • [ui] tests/ui/closures/2229_closure_analysis/incompatible-captures-without-drop-location.rs: [missing] -> pass (J2)
  • [ui] tests/ui/parser/issues/issue-87217-keyword-order/wrong-const-async-unsafe-abi.rs: [missing] -> pass (J2)
  • [ui] tests/ui/parser/issues/issue-87217-keyword-order/wrong-const-unsafe-abi.rs: [missing] -> pass (J2)
  • [ui] tests/ui/parser/issues/issue-87217-keyword-order/wrong-pub-const-unsafe-abi.rs: [missing] -> pass (J2)
  • [ui] tests/ui/suggestions/change-mut-borrow-in-macro.rs: [missing] -> pass (J2)
  • [ui] tests/ui/asm/arm-high-dregs.rs#baseline: [missing] -> ignore (only executed when the ABI is eabihf) (J5)
  • [ui] tests/ui/asm/arm-high-dregs.rs#target-cpu: [missing] -> ignore (only executed when the ABI is eabihf) (J5)
  • [ui] tests/ui/asm/arm-high-dregs.rs#baseline: [missing] -> pass (J6)
  • [ui] tests/ui/asm/arm-high-dregs.rs#target-cpu: [missing] -> pass (J6)
  • [ui] tests/ui/asm/arm-high-dregs.rs#baseline: [missing] -> ignore (gcc backend is marked as ignore) (J7)

(and 107 additional test diffs)

Additionally, 140 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 5392d2f545c6836dc79f209bcc14ac7179dbc4f2 --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. test-pr-check-1: 21m 37s -> 35m 4s (+62.2%)
  2. test-i686-gnu-2: 1h 1m -> 1h 36m (+55.9%)
  3. dist-i686-mingw: 38m 35s -> 58m 53s (+52.6%)
  4. test-x86_64-gnu-llvm-22-1: 51m 28s -> 1h 17m (+49.6%)
  5. test-x86_64-gnu-aux: 1h 48m -> 2h 36m (+44.1%)
  6. test-x86_64-mingw-2: 2h 5m -> 2h 56m (+40.3%)
  7. test-x86_64-msvc-ext1: 2h 26m -> 1h 29m (-39.1%)
  8. test-x86_64-msvc-1: 2h 43m -> 1h 47m (-34.3%)
  9. dist-s390x-linux: 1h 41m -> 1h 10m (-30.8%)
  10. test-x86_64-gnu-tools: 48m 49s -> 1h 2m (+27.6%)
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
Copy Markdown
Collaborator

Finished benchmarking commit (5392d2f): comparison URL.

Overall result: ❌ regressions - 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.3% [0.3%, 0.3%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary -3.0%)

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.0% [-4.6%, -2.3%] 7
All ❌✅ (primary) - - 0

Cycles

Results (secondary -2.5%)

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)
-2.5% [-2.5%, -2.5%] 2
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 499.183s -> 498.835s (-0.07%)
Artifact size: 406.98 MiB -> 406.92 MiB (-0.01%)

@rust-bors

rust-bors Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#160911 Remove d32 feature from 32-bit Arm targets 0e21efee1ad09fb750d7925735bc0495cc10e971
(link)
#161868 libtest: never iterate over all tests in --exact mode 0aebea155e1762d121a36050809579171759e979
(link)
#162771 Filter do_not_recommend impls before handling a single cand… 770a9cd836e90531865b30fac7bb7eae2d98593d
(link)
#162779 rustdoc: Revert "fix bare urls split text" 449ef23aaee79c35943b81f9f1438ae76af4fe41
(link)
#161548 hir_typeck: Don't ICE on closures without drop location in … a95bb5123adf94b8d199ef6c785d7b0d3d57e995
(link)
#161612 std: make a lot of items crate private 5fd8036399b337996c485b6827352b42ac8c8838
(link)
#162204 Suggest keyword order for extern "C" const unsafe fn a49eccce6262767b290fa364a3bb1b3248cca9cf
(link)
#162372 Clean up test/rustdoc-html folder by moving tests where a… 5ba40ad43420c54829acf3ef4a340f531115c617
(link)
#162638 dont suggest changing the mutability of a borrow that comes… 2983377a72702e02bd14e45cf7f761f786fd319f
(link)
#162643 Fix path_trailing_sep methods for Windows verbatim paths 033e87fb6705d4a4630c87e5ee0918d3a9e5e16d
(link)
#162654 Improve Armv7-R documentation 3b668784cd114e694cdd507b51569fdf85f05b5f
(link)
#162784 AGENTS.md: Permit local experimentation, per the online pol… 16c23a49d3114f99075da694f9b0bd51495b7863
(link)

parent commit: c26ce708de

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

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

Labels

A-rustc-dev-guide Area: rustc-dev-guide merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler 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.