Skip to content

Rollup of 7 pull requests - #162284

Merged
rust-bors[bot] merged 95 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-xBLkMAP
Sep 4, 2026
Merged

Rollup of 7 pull requests#162284
rust-bors[bot] merged 95 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-xBLkMAP

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

jyn514 and others added 30 commits August 17, 2026 09:23
- Organize by "About" -> "Contributing" -> "Editing" -> "Maintaining"
  rather than mixing sections
- Deduplicate a few lines into the guide itself
- Recommend `mdbook serve` over `mdbook build`
- Document `mdbook` layout and link to the upstream docs
- Document sembr and that relative links must use `.md` extensions
- Add a section on testing the tools in `ci/`
Make README more complete and easier to follow
Dedup a bunch of information that's already on Forge
This updates the rust-version file to da51146.
That is not all it does
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.
- remove discouraging "pretty simple" in a complex chapter
- mention that queries are demand-driven, not just memoized
- emphasize that "query system" is a term of art (c.f. "Improper Nouns":
  https://siderea.dreamwidth.org/1773806.html)
touch-ups to "query system" chapter
…ocked

Install cargo tools with locked dependencies
fix outdated docs about what RA config `x setup` generates
Add a central index of dev-guide reading club discussions
 add some more compiler internals videos
…ethercote

Update internal docs & tests to use `!` rather than `Infallible` in relation to `Try`

- Update docs, internal comments and tests to use `!` rather than `Infallible` in `Try` situations.
- Add a custom `enum Uninhabited {}` to specific clippy tests where unintentional future divergence in handling `!` vs other uninhabited types may be a possible concern

Refs:
- Never is ~~meow~~ now rust-lang#155499
- Try: rust-lang#84277 & rust-lang/goals#654
…r=fee1-dead

Clean up the AST visitor

The AST visitor is macro-heavy and complicated. This PR simplifies some aspects of it. Details in individual commits.

r? @fee1-dead
rustc-dev-guide subtree update

Subtree update of `rustc-dev-guide` to rust-lang/rustc-dev-guide@a6da162.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 4, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide PG-exploit-mitigations Project group: Exploit mitigations 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. labels Sep 4, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c97aa40 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 4, 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 4, 2026
@rust-bors

rust-bors Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 10m 18s
Pushing b924f94 to main...

@github-actions

github-actions Bot commented Sep 4, 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 71238e2 (parent) -> b924f94 (this PR)

Test differences

Show 79 test diffs

Stage 1

  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/cfi-ignorelist.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/global-ignorelist.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#ASAN: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#MSAN: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#TSAN: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kcfi-ignorelist.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kernel-address-ignorelist.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/mainfile-ignore.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/override-ignorelist.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#ASAN: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#MSAN: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#TSAN: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-asan.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-kcfi.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-string-unsafe.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#HWASAN: [missing] -> ignore (ignored on targets without hardware-assisted address sanitizer) (J2)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/override-kernel-address.rs: [missing] -> ignore (ignored on targets without kernel address sanitizer) (J2)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#HWASAN: [missing] -> ignore (ignored on targets without hardware-assisted address sanitizer) (J2)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/cfi-ignorelist.rs: [missing] -> ignore (ignored on targets without CFI sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/global-ignorelist.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#ASAN: [missing] -> ignore (ignored on targets without address sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#MSAN: [missing] -> ignore (ignored on targets without memory sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#TSAN: [missing] -> ignore (ignored on targets without thread sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kcfi-ignorelist.rs: [missing] -> ignore (ignored on targets without kernel CFI sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kernel-address-ignorelist.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/mainfile-ignore.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/override-ignorelist.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#ASAN: [missing] -> ignore (ignored on targets without address sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#MSAN: [missing] -> ignore (ignored on targets without memory sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#TSAN: [missing] -> ignore (ignored on targets without thread sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore.rs: [missing] -> ignore (ignored on targets without CFI sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-asan.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-kcfi.rs: [missing] -> ignore (ignored on targets without kernel CFI sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist.rs: [missing] -> ignore (ignored on targets without CFI sanitizer) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-string-unsafe.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J6)

Stage 2

  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#MSAN: [missing] -> pass (J0)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#TSAN: [missing] -> pass (J0)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore.rs: [missing] -> pass (J0)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#MSAN: [missing] -> ignore (ignored on targets without memory sanitizer) (J3)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#TSAN: [missing] -> ignore (ignored on targets without thread sanitizer) (J3)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore.rs: [missing] -> ignore (ignored on targets without CFI sanitizer) (J3)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/global-ignorelist.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J4)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#ASAN: [missing] -> ignore (ignored on targets without address sanitizer) (J4)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kernel-address-ignorelist.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J4)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/mainfile-ignore.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J4)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/override-ignorelist.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J4)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-asan.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J4)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-string-unsafe.rs: [missing] -> ignore (ignored on targets without address sanitizer) (J4)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#HWASAN: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#HWASAN: [missing] -> ignore (ignored on targets without hardware-assisted address sanitizer) (J7)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/global-ignorelist.rs: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#ASAN: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kernel-address-ignorelist.rs: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/mainfile-ignore.rs: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/override-ignorelist.rs: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-asan.rs: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-string-unsafe.rs: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#HWASAN: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/cfi-ignorelist.rs: [missing] -> ignore (ignored on targets without CFI sanitizer) (J10)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#TSAN: [missing] -> ignore (ignored on targets without thread sanitizer) (J10)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist.rs: [missing] -> ignore (ignored on targets without CFI sanitizer) (J10)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#HWASAN: [missing] -> ignore (ignored on targets without hardware-assisted address sanitizer) (J11)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kcfi-ignorelist.rs: [missing] -> pass (J12)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-kcfi.rs: [missing] -> pass (J12)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/cfi-ignorelist.rs: [missing] -> pass (J13)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#TSAN: [missing] -> pass (J13)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist.rs: [missing] -> pass (J13)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#MSAN: [missing] -> ignore (ignored on targets without memory sanitizer) (J14)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/ignorelist.rs#MSAN: [missing] -> pass (J15)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/override-kernel-address.rs: [missing] -> ignore (ignored on targets without kernel address sanitizer) (J16)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/src-ignore-memory.rs#ASAN: [missing] -> pass (J17)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/kcfi-ignorelist.rs: [missing] -> ignore (ignored on targets without kernel CFI sanitizer) (J18)
  • [codegen] tests/codegen-llvm/sanitizer/ignorelist/type-ignorelist-kcfi.rs: [missing] -> ignore (ignored on targets without kernel CFI sanitizer) (J18)

Additionally, 4 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 b924f94129bce80f36dd9f08bb78dd5393fe196e --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-msvc-1: 1h 54m -> 2h 47m (+46.7%)
  2. x86_64-gnu-llvm-22-2: 1h 20m -> 1h 48m (+35.4%)
  3. i686-msvc-1: 2h 21m -> 3h 8m (+33.6%)
  4. x86_64-gnu-distcheck: 1h 52m -> 2h 26m (+30.7%)
  5. x86_64-gnu-parallel-frontend: 2h -> 1h 24m (-30.1%)
  6. dist-powerpc-linux: 1h 11m -> 1h 32m (+29.3%)
  7. x86_64-gnu-aux: 2h -> 2h 31m (+25.9%)
  8. dist-android: 32m 9s -> 25m (-22.2%)
  9. x86_64-msvc-ext2: 1h 49m -> 1h 26m (-20.8%)
  10. dist-loongarch64-linux: 1h 51m -> 1h 32m (-16.9%)
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 (b924f94): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (primary 2.5%, secondary 2.1%)

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

mean range count
Regressions ❌
(primary)
2.5% [0.4%, 4.3%] 6
Regressions ❌
(secondary)
3.5% [2.4%, 4.6%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-6.3% [-6.3%, -6.3%] 1
All ❌✅ (primary) 2.5% [0.4%, 4.3%] 6

Cycles

Results (primary 3.1%, secondary -1.7%)

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

mean range count
Regressions ❌
(primary)
3.1% [2.4%, 3.9%] 2
Regressions ❌
(secondary)
2.2% [2.2%, 2.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.6% [-4.5%, -2.8%] 2
All ❌✅ (primary) 3.1% [2.4%, 3.9%] 2

Binary size

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

Bootstrap: 475.37s -> 480.684s (1.12%)
Artifact size: 403.37 MiB -> 403.39 MiB (0.00%)

@rust-bors

rust-bors Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#157808 sanitizers: Implement support for the sanitize ignorelist 0167b1a17eff35e094ee3f3c4907ca19518c6759
(link)
#160660 c-variadic: use emit_ptr_va_arg for va_arg on sparc 3e08811b45f173c73e18bdff32e061de977308d9
(link)
#162237 make -Ctarget-feature warnings more explicitly FCWs 84c901deaa34b3c24f002f30b3b1bd88425dc99a
(link)
#160111 Generalize Decodable impl for arrays to all types d124f22c03af0fac6b44e2c0a2fdbb1479b4f3bf
(link)
#162174 Update internal docs & tests to use ! rather than `Infall… ed87a3118c0ebac80f4bf4a92bcade1f32a4f96d
(link)
#162226 Clean up the AST visitor 902a20e4874e44f715a6081592d7cb5a3498048d
(link)
#162281 rustc-dev-guide subtree update 1aa63d1e53fd56586feb952efad89fc51b868d0b
(link)

parent commit: 71238e21fc

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-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide merged-by-bors This PR was explicitly merged by bors. PG-exploit-mitigations Project group: Exploit mitigations 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.