Skip to content

Rollup of 21 pull requests - #165375

Merged
rust-bors[bot] merged 226 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-TB0TYng
Nov 3, 2026
Merged

rust-bors[bot] merged 226 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-TB0TYng

Conversation

@JonathanBrouwer

@JonathanBrouwer JonathanBrouwer commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

yotamofek and others added 30 commits June 8, 2026 19:47
                                                                   Doubles the throughput on both Ice Lake and Zen4.
                                                                   Improves latency on Ice Lake from 23 to 13 cycles, on Zen4 from 17 to 15 cycles.

                                                                   Improves encoding performance of a toy base64 implementation on Zen4 by -20% (time) +25% (throughput), no change on decoding benchmark
…mals

cleanup `FlushSubnormals` implementation
Installing cargo tools (`cargo install`) without locked dependencies exposes users to supply-chain attacks to all the dependencies of the tool (https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/). Using `cargo install --locked` reduces this risk to a compromise of the tool itself, while using the locked and hashed version of the dependencies.

I went through all `rg "cargo install"` hits in the repository and added `--locked` to all but explanatory examples (such as cargo's docs on `cargo install` itself). I validated that those tools publish functioning `Cargo.lock`s with https://gist.github.com/konstin/bcb1169c1c1120c259dca64e777a64d0.
…l-locked

Install cargo tools with locked dependencies
Use a more optimal formulation of swizzle_dyn for AVX2
so that values are read from the correct half of the slot. Specifically `i32` was read incorrectly
…the method, and added benchmark cases + tests for retain_unstable
…etain_unstable to drop elements that were evaluated as false by the predicate in the reverse search (batch dropping is slower) + PanicGuard now just performs a swap with the last element and the hole (so long as Swap index != Hole index) which is more efficient than doing a shift, added some benchmark cases to see where retain_unstable would perform better than retain
…hen g.read_back == g.write and mem::forget the PanicGuard, removed len field in PanicGuard (fulfilled by read_back field), and updated implementation comments as a result
… use copy_nonoverlapping instead of copy in PanicGuard::drop, added a few more benchmarking cases, and slightly refactored code
See: https://github.com/actions/checkout/releases/tag/v4.4.0

This is the same version we're already implicitly using.

Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
See: https://github.com/peaceiris/actions-gh-pages/releases/tag/v3.9.3

This is the same version we're already implicitly using.

Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
See: https://github.com/taiki-e/install-action/releases/tag/v2.87.31

This is the same version we're already implicitly using. This does not
pin `cargo-nextest`, that would have to be done separately.

Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Did you know `bash` is available by default on `windows-latest` too? It
makes it much easier to write cross-platform workflows if you just use
`bash` everywhere.

Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
@rustbot rustbot added 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 Nov 2, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu,test-x86_64-gnu-llvm-22-3,test-aarch64-msvc-2

@rust-bors

rust-bors Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 1cef4b1 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 Nov 2, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Nov 2, 2026
Rollup of 21 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
try-job: test-x86_64-gnu-llvm-22-3
try-job: test-aarch64-msvc-2
@rust-bors

rust-bors Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 3d447c5 (3d447c5d52d56095b92e92d82193284c4774cb5a)
Base parent: 1c3a650 (1c3a6506966e21845b31de0b075d2527660db132)

@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 Nov 3, 2026
@rust-bors

rust-bors Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 16m 52s
Pushing 6a98084 to main...

@github-actions

github-actions Bot commented Nov 3, 2026

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 1c3a650 (parent) -> 6a98084 (this PR)

Test differences

Show 849 test diffs

Stage 1

  • vec::bench_retain_quarter_false_100000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_100000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_100000_quarter_false_with_alignment: [missing] -> pass (J0)
  • vec::bench_retain_unstable_none_100000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_quarter_false_100000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u16_000064: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u16_000512: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u16_001000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u16_100000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u32_001000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u32_010000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u64_000256: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u8_000004: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u8_000016: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u8_000064: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u8_000128: [missing] -> pass (J0)
  • vec::bench_retain_unstable_u8_000512: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_100000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u16_000004: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u16_000128: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u16_010000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u32_000004: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u32_000008: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u32_000016: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u32_000128: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u32_000256: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u32_000512: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u32_010000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u64_000004: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u64_001000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u64_100000: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u8_000008: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u8_000032: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u8_000064: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u8_000128: [missing] -> pass (J0)
  • vec::bench_retain_unstable_whole_u8_000512: [missing] -> pass (J0)
  • vec::test_retain_unstable_all_false: [missing] -> pass (J0)
  • vec::test_retain_unstable_drop_panic: [missing] -> pass (J0)
  • vec::test_retain_unstable_maybeuninits: [missing] -> pass (J0)
  • vec::test_retain_unstable_pred_panic_no_hole: [missing] -> pass (J0)
  • [ui] tests/ui/associated-inherent-types/next-solver-fn-ptr-no-ice.rs: [missing] -> pass (J5)
  • [ui] tests/ui/parser/do-not-suggest-semicolon-before-index.rs: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/issues/issue-156423.rs: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J7)
  • [crashes] tests/crashes/142717.rs: [missing] -> pass (J7)

Stage 2

  • vec::bench_retain_quarter_false_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_100000_quarter_false_with_alignment: [missing] -> pass (J1)
  • vec::bench_retain_unstable_none_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_quarter_false_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u16_000032: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u16_000128: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u16_000512: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u16_001000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u16_010000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u32_000004: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u32_000008: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u32_000016: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u32_000032: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u32_000512: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u32_001000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u32_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u64_000016: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u64_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u8_010000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_u8_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u16_000008: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u16_000064: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u16_000256: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u32_000008: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u32_000016: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u32_000512: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u64_000008: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u64_000064: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u64_000256: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u64_100000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_000008: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_000016: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_000064: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_000128: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_000256: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_000512: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_001000: [missing] -> pass (J1)
  • vec::bench_retain_unstable_whole_u8_100000: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/issues/issue-156423.rs: [missing] -> ignore (only executed when the target is x86_64-unknown-linux-gnu) (J2)
  • time::display_seconds_padding: [missing] -> pass (J3)
  • time::display_seconds_precision_high: [missing] -> pass (J3)
  • time::display_seconds_precision_two: [missing] -> pass (J3)
  • time::display_seconds_round_to_even: [missing] -> pass (J3)
  • vec::test_retain_unstable: [missing] -> pass (J3)
  • vec::test_retain_unstable_all_false: [missing] -> pass (J3)
  • vec::test_retain_unstable_all_true: [missing] -> pass (J3)
  • vec::test_retain_unstable_pred_panic_no_hole: [missing] -> pass (J3)
  • vec::test_retain_unstable_pred_panic_with_hole: [missing] -> pass (J3)
  • [ui] tests/ui/associated-inherent-types/next-solver-fn-ptr-no-ice.rs: [missing] -> pass (J4)
  • [ui] tests/ui/parser/do-not-suggest-semicolon-before-index.rs: [missing] -> pass (J4)
  • [debuginfo-lldb] tests/debuginfo/empty-string.rs: ignore (ignored when the operating system and target environment are windows-gnu (The debuginfo test harness does not load pretty-printers for windows-gnu #128981)) -> pass (J6)
  • [debuginfo-lldb] tests/debuginfo/numeric-types.rs: ignore (ignored when the operating system and target environment are windows-gnu (The debuginfo test harness does not load pretty-printers for windows-gnu #128981)) -> pass (J6)
  • [debuginfo-lldb] tests/debuginfo/pretty-std-collections.rs: ignore (ignored when the operating system and target environment are windows-gnu (The debuginfo test harness does not load pretty-printers for windows-gnu #128981)) -> pass (J6)
  • [ui] tests/ui/alloc-error/alloc-error-backtrace.rs: ignore (ignored when the operating system and target environment are windows-gnu) -> pass (J6)
  • [crashes] tests/crashes/142717.rs: [missing] -> pass (J8)

(and 163 additional test diffs)

Additionally, 586 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 6a98084e4a21b04504c034dfc640e35e32ab9854 --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-2: -> 42m 15s (+inf%)
  2. test-various: -> 2h 30m (+inf%)
  3. dist-armhf-linux: -> 1h 35m (+inf%)
  4. test-x86_64-mingw-1: -> 2h 33m (+inf%)
  5. dist-x86_64-netbsd: -> 1h 11m (+inf%)
  6. dist-i686-mingw: -> 42m 8s (+inf%)
  7. dist-powerpc64le-linux-musl: -> 1h 19m (+inf%)
  8. test-x86_64-gnu-distcheck: -> 1h 56m (+inf%)
  9. test-tidy: -> 5m 34s (+inf%)
  10. dist-aarch64-msvc: -> 2h 4m (+inf%)
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 (6a98084): comparison URL.

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

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.6% [0.6%, 0.6%] 1
Improvements ✅
(primary)
-3.5% [-4.0%, -3.0%] 4
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.2%] 2
All ❌✅ (primary) -3.5% [-4.0%, -3.0%] 4

Max RSS (memory usage)

Results (primary -1.6%, secondary 1.4%)

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

mean range count
Regressions ❌
(primary)
1.4% [1.4%, 1.4%] 1
Regressions ❌
(secondary)
2.6% [2.1%, 3.1%] 6
Improvements ✅
(primary)
-3.1% [-3.1%, -3.0%] 2
Improvements ✅
(secondary)
-2.3% [-2.5%, -2.1%] 2
All ❌✅ (primary) -1.6% [-3.1%, 1.4%] 3

Cycles

Results (primary -2.1%, secondary 5.0%)

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

mean range count
Regressions ❌
(primary)
2.4% [2.4%, 2.4%] 1
Regressions ❌
(secondary)
5.0% [2.2%, 8.5%] 3
Improvements ✅
(primary)
-4.3% [-4.7%, -3.9%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.1% [-4.7%, 2.4%] 3

Binary size

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

Bootstrap: 483.238s -> 482.475s (-0.16%)
Artifact size: 406.36 MiB -> 406.38 MiB (0.00%)

@rustbot rustbot added the perf-regression Performance regression. label Nov 3, 2026
@rust-bors

rust-bors Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#165331 miri subtree update 44822d1b938321ba5dee6589b5ef78a209b43ee4
(link)
#165356 portable-simd subtree update 4fa13e77260c41128aebc8f25ab329f9900511bb
(link)
#162916 rustdoc: Improve ItemKind aaf3ceb71dc0e51676af552bfe059bc87b55b94e
(link)
#161035 Tweak error for stmt macro expansion in expression context 55d909a174161026a234bb02536629e648a7e8ef
(link)
#163762 Tweak "value not found" error to show more context when ite… 3d2e19d423744ba15ab152a323b0ad72989a7db1
(link)
#164155 Implement Vec::retain_unstable ACP c2b690ed1ab24b6e91f5225a9a15a6dfe73cb9fc
(link)
#164786 Add regression test for issue 156423 d9d0bc040242d032183c168b36317331a12619a0
(link)
#165103 add TrySendError::into_inner 93e00ce2590d84d6f8a85aafa60f04f7f3ec81c6
(link)
#157584 Misc. fmt_type cleanups 10ca1c54ba7d05004378e2b02dd148de4a36d200
(link)
#161207 Stop suggesting missing semicolon with multiline indexing 8dcb947a16f0126472f4d6a7c9646a56ea326544
(link)
#162070 Add regression test for associated const equality param out… d785fd3d496a8ec91e9b748e9b23f2d77d602def
(link)
#162537 Remove outdated windows-gnu test ignores a43af062e17d35759b26e4730d278d04f6e9856d
(link)
#162978 add regression test for #142717 dca2cf140e4f622b2468782fd04265c79b55a374
(link)
#163333 va_arg: force right-adjust on aarch64_be 8a0b886cc6bb6fafbf5bff33d288392440fd7b1e
(link)
#163377 Avoid ICE when checking casts from function items cbc15d332f1d48cf289e57a3b146003b251a4d61
(link)
#163399 Support cfg_version in doc_cfg 499335c64ad8dbfbb349547203acdf79900024f3
(link)
#165015 Autolabel library modules c126064758d158fd359d5786c3ef426f425000cf
(link)
#165181 Implement Duration::display_seconds dfdd749fa0fb48965101fac3851bb6e9c614aeb6
(link)
#165185 Add codegen test for enumerate index bounds check eliminati… f21db6e487a670f5f7ec44a3bad6fefb00c5f1da
(link)
#165193 Do attribute target checking on parameters with the new sys… e3513005e405cf78e4d8cfe49c30b205a1bd6b53
(link)
#165292 DropGuard: remove leading newlines from examples c69f0d93bf73fe582dfd8dfe6f1b02231b20e890
(link)

parent commit: 1c3a650696

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@rustbot label: +perf-regression-triaged
Not worth investigating imo

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Nov 3, 2026
@fmease

fmease commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

The massive doc&doc-json improvements (significance factors: 94.99x, 70.91x, 50.51x & 50.34x) and the slight regression in one doc-json benchmark come from PR #162916 which has been perf triaged already.

The include-blob improvements are likely spurious.

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-json Area: Rustdoc JSON backend A-tidy Area: The tidy tool 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-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-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.