Skip to content

Rollup of 18 pull requests#155380

Merged
rust-bors[bot] merged 56 commits intorust-lang:mainfrom
jhpratt:rollup-j1e7DVL
Apr 16, 2026
Merged

Rollup of 18 pull requests#155380
rust-bors[bot] merged 56 commits intorust-lang:mainfrom
jhpratt:rollup-j1e7DVL

Conversation

@jhpratt
Copy link
Copy Markdown
Member

@jhpratt jhpratt commented Apr 16, 2026

Successful merges:

r? @ghost

Create a similar rollup

hkBst and others added 30 commits January 27, 2026 13:00
Shaves off 368 bytes from the total size of all Unicode data tables.
This avoids having to add several unhelpful annotations when enabling
diagnostic checks for `cpass` and `rpass` revisions.
This allows warnings to be annotated, and verifies that no unexpected warnings
occur.
* Adds musl CVE fix to compiler section
* Removes Cargo section per feedback in the PR
`DroplessArena::alloc` already disallows ZST allocation.
`TypedArena::alloc` allows it but:
- (a) it's never used, and
- (b) writing to `NonNull::dangling()` seems dubious, even if the write
  is zero-sized.

This commit just changes it to panic on a ZST. This eliminates an
untested code path, and we shouldn't be allocating ZSTs anyway.
It also eliminates an unused ZST code path in `clear_last_chunk`.
Tests are also updated accordingly.
This adds a `--quiet` flag to x.py and bootstrap to suppress some of the
output when compiling Rust. It conflicts with `--verbose`, matching the
behavior of `cargo` which does not allow `--verbose` and `--quiet`.

It works by passing quiet flags down to the underlying cargo, or LLVM
build processes. Note that for LLVM, we only can suppress logs when we
explicitly configure it with ninja. Otherwise we won't know what flag
to pass along to whichever build system cmake decides to use.

This can be helpful with AI workloads in the Rust codebase to help
shrink down the output to reduce token usage, which can help prevent
context pollution and lower costs.

This patch was partially generated with Gemini, but I've reviewed the
changes it made.
Co-authored-by: Josh Stone <[email protected]>
@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 Apr 16, 2026
@Zalathar
Copy link
Copy Markdown
Member

The queue is fairly long, so let's run a few try jobs in parallel while we're waiting.

@bors try jobs=x86_64-msvc-1,i686-msvc-1,x86_64-mingw-1,test-various,armhf-gnu,aarch64-apple

@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Apr 16, 2026
Rollup of 18 pull requests


try-job: x86_64-msvc-1
try-job: i686-msvc-1
try-job: x86_64-mingw-1
try-job: test-various
try-job: armhf-gnu
try-job: aarch64-apple
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 16, 2026

☀️ Try build successful (CI)
Build commit: 4217ce0 (4217ce0cbb39156ee8e50252fd1c0342c11400e2, parent: e8e4541ff19649d95afab52fdde2c2eaa6829965)

@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 Apr 16, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 16, 2026

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 17m 39s
Pushing 7af3402 to main...

@rust-bors rust-bors bot merged commit 7af3402 into rust-lang:main Apr 16, 2026
13 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 16, 2026
@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 d227e48 (parent) -> 7af3402 (this PR)

Test differences

Show 237 test diffs

Stage 0

  • tests::test_typed_arena_zero_sized: pass -> [missing] (J1)

Stage 1

  • [crashes] tests/crashes/123629.rs: pass -> [missing] (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-diag-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-doc-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-macro-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-object-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#without-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix-macro-138520.rs: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix-macro.rs: pass -> [missing] (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-debuginfo-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-diag-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-doc-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-macro-scope: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#without-remap: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#without-scopes: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-scope-invalid.rs#foo: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-scope-invalid.rs#underscore: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/remap-path-scope-unstable.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/generic_const_exprs/bad-defaults-for-generic-param-in-binder-123629.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs: pass -> [missing] (J1)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs#r1: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs#r2: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs#r3: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/bad-const-arg-fn-154539.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs: pass -> [missing] (J1)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155125: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155127: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155128: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155164: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155202: [missing] -> pass (J1)
  • [ui] tests/ui/transmute/raw-ptr-non-null.rs: [missing] -> pass (J1)
  • unicode::cased: pass -> [missing] (J3)
  • unicode::lt: [missing] -> pass (J3)
  • tests::test_typed_arena_zero_sized: pass -> [missing] (J4)

Stage 2

  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-diag-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-doc-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-macro-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#with-object-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix-doctest.rs#without-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix-macro-138520.rs: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix-macro.rs: pass -> [missing] (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-debuginfo-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-diag-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-doc-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#with-macro-scope: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#without-remap: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-prefix.rs#without-scopes: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-scope-invalid.rs#foo: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-scope-invalid.rs#underscore: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/remap-path-scope-unstable.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/generic_const_exprs/bad-defaults-for-generic-param-in-binder-123629.rs: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs: pass -> [missing] (J2)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs#r1: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs#r2: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/array-expr-complex.rs#r3: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/bad-const-arg-fn-154539.rs: [missing] -> pass (J2)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs: pass -> [missing] (J2)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155125: [missing] -> pass (J2)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155127: [missing] -> pass (J2)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155128: [missing] -> pass (J2)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155164: [missing] -> pass (J2)
  • [ui] tests/ui/delegation/hir-crate-items-before-lowering-ices.rs#ice_155202: [missing] -> pass (J2)
  • [ui] tests/ui/transmute/raw-ptr-non-null.rs: [missing] -> pass (J2)
  • unicode::cased: ignore -> [missing] (J5)
  • unicode::lt: [missing] -> ignore (J5)
  • unicode::cased: pass -> [missing] (J6)
  • unicode::lt: [missing] -> pass (J6)
  • [crashes] tests/crashes/123629.rs: pass -> [missing] (J7)
  • [incremental] tests/incremental/split_debuginfo_mode.rs: pass -> ignore (gcc backend is marked as ignore) (J8)

Additionally, 168 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 7af3402cda75aaead39f72516fd6cbb2f3ee0dbd --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-debug: 1h 28m -> 2h 3m (+39.6%)
  2. x86_64-msvc-ext1: 1h 42m -> 2h 17m (+35.1%)
  3. dist-aarch64-linux: 1h 57m -> 2h 34m (+31.7%)
  4. pr-check-1: 26m 21s -> 33m 55s (+28.7%)
  5. dist-x86_64-llvm-mingw: 1h 33m -> 1h 59m (+27.4%)
  6. dist-s390x-linux: 1h 12m -> 1h 30m (+25.3%)
  7. aarch64-gnu-debug: 1h 7m -> 1h 22m (+22.0%)
  8. dist-various-1: 57m 31s -> 1h 9m (+21.6%)
  9. dist-x86_64-solaris: 1h 37m -> 1h 17m (-20.5%)
  10. i686-msvc-2: 2h 7m -> 1h 42m (-20.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
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150649 clippy fix: non_canonical_clone_impl fc70d8dc3b8b01e8d693580f03693e8f239ddb15 (link)
#154451 Require that a <_ as Try>::Residual implement the `Residu… 4c1b466a05174216a2b097b6be636244dccdd821 (link)
#154595 Emit fatal on invalid const args with nested defs 99000868c641bc0a675ad271e12ef6fbc4b54106 (link)
#154599 report the varargs_without_pattern lint in deps eadb1ca405f9221896c471deb07141bafac8069e (link)
#154604 abort in core 761bdb0a22b54308e3cc7bb20e219a8f647afb6a (link)
#154616 Add --quiet flag to x.py and bootstrap to suppress output d47daec54d5c25f9c0a9d5712ea1cf140d593f9a (link)
#154699 core::unicode: Replace Cased table with Lt 790119dd5d28670630f4443a8bff61cbd0a3ca0f (link)
#155215 Clean up AttributeLintKind and refactor diagnostic attrib… 56f248727f19dc7f5fcb06757bb147f955ca75d1 (link)
#155228 Check diagnostic output in incremental cpass and rpass 424e608bb176415227031c72ebce2152d15abcab (link)
#155266 Adjust release notes for post-merge feedback 4790be9d07def9b1d581f5ae61b849026ceea2e6 (link)
#155326 Disallow ZST allocations with TypedArena. 9d7b99c9e506889da3b6afb2ada8c0aeaf14e37d (link)
#155334 docs: Use 0b1 instead of NonZero::MIN in `NonZero::bit_… af6f02f6f7b65e7e3603439ec0b09914ea46d862 (link)
#155340 Handle nonnull pattern types in size skeleton 46349cc08e22ca809f8920e2a8cf1c33739e52b0 (link)
#155347 Add push_mut and new Layout methods to release notes 04b64a86af12dd221182ea651185c5f2dcc3274c (link)
#155353 resolve: Remove inaccessible_ctor_reexport resolver field 72a455754897ec4500edbe1316576b0840a17601 (link)
#155356 remove calls to AliasTyKind::def_id 1b26279bcc49b5abf598dd79ff5c4c332be540fd (link)
#155357 Add --remap-path-scope as unstable in rustdoc 93c60626ffef2233b37dcd87477891e4b47affbc (link)
#155364 Reduce diagnostic type visibilities. 25b2d2a5edf985e5c7810486494bf60071cdb9c2 (link)

previous master: d227e48c56

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
Copy Markdown
Collaborator

Finished benchmarking commit (7af3402): 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.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-0.2% [-0.2%, -0.2%] 5
Improvements ✅
(secondary)
-0.3% [-0.4%, -0.3%] 2
All ❌✅ (primary) -0.2% [-0.2%, -0.2%] 5

Max RSS (memory usage)

Results (primary 2.2%, secondary 1.0%)

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

mean range count
Regressions ❌
(primary)
2.8% [1.2%, 5.3%] 7
Regressions ❌
(secondary)
3.0% [1.9%, 4.1%] 6
Improvements ✅
(primary)
-1.9% [-1.9%, -1.9%] 1
Improvements ✅
(secondary)
-3.1% [-5.0%, -2.0%] 3
All ❌✅ (primary) 2.2% [-1.9%, 5.3%] 8

Cycles

Results (primary -2.1%, secondary 1.9%)

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)
3.4% [2.2%, 5.7%] 3
Improvements ✅
(primary)
-2.1% [-2.2%, -2.0%] 2
Improvements ✅
(secondary)
-2.5% [-2.5%, -2.5%] 1
All ❌✅ (primary) -2.1% [-2.2%, -2.0%] 2

Binary size

Results (primary 0.1%, secondary -0.0%)

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

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 1
All ❌✅ (primary) 0.1% [0.1%, 0.1%] 4

Bootstrap: 492.446s -> 509.515s (3.47%)
Artifact size: 394.09 MiB -> 394.12 MiB (0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Apr 16, 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-compiletest Area: The compiletest test runner A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. 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-release Relevant to the release subteam, 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.