Skip to content

Rollup of 12 pull requests - #160586

Merged
rust-bors[bot] merged 47 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-UKh8PSn
Aug 6, 2026
Merged

Rollup of 12 pull requests#160586
rust-bors[bot] merged 47 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-UKh8PSn

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

P8L1 and others added 30 commits July 10, 2026 23:41
Localize the WF helper logic to builtin coherence and add the directly related UI coverage.
Since we're getting rid of the ability to do finalize and document at
the same time, we can't actually do this in the rustdoc-html test build
system and need to do it this way instead.
Co-authored-by: Noah Lev <37223377+camelid@users.noreply.github.com>
Co-authored-by: Noah Lev <37223377+camelid@users.noreply.github.com>
Currently, module summaries are only emitted with thin lto. If we would
link full/fat lto'd rust code against lto'd c++ code built with CFI (or
WPD), those passes would fail during the link step because the
participating rust modules are missing module summaries. Rust code does
not know at compile-time if it would be participating in some special
link which may require module summaries, so this PR ensures module
summaries are unconditionally emitted for full/fat lto, just like with
thin lto.

The WriteBitcodeToFile function just invokes the normal
BitcodeWriterPass under the hood, but doesn't provide a way to set the
argument for emitting module summaries. So this patch just adds the pass
directly and sets that argument.

Finally, now that we're generating module summaries for `-Clto=fat`
without using ThinLTO, we need to update `rustc-metadata` to keep
around a temporary directory that contains the `.rmeta` for a little
longer before we deserialize it.
So that their order will be the preferred order for implementations (assuming implementing `read_buf()` is better), like @joshtriplett said in rust-lang#106643 (comment).
Signed-off-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com>
@rustbot rustbot added O-solid Operating System: SOLID O-unix Operating system: Unix-like O-wasi Operating system: Wasi, Webassembly System Interface O-wasm Target: WASM (WebAssembly), http://webassembly.org/ O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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 Aug 5, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ p=5

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

@rust-bors

rust-bors Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 24a93e7 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 Aug 5, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 5, 2026
Rollup of 12 pull requests


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

This comment has been minimized.

@rust-bors

rust-bors Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 89f406b (89f406b6cb3535fd10a8a2e33a0973c13c0fd7db)
Base parent: 87212ce (87212cef77e7bfa92ba0c4850be1d089745ba6fc)

@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 Aug 6, 2026
@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 12m 4s
Pushing 26bfbf2 to main...

@rust-bors
rust-bors Bot merged commit 26bfbf2 into rust-lang:main Aug 6, 2026
15 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Aug 6, 2026
@github-actions

github-actions Bot commented Aug 6, 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 7608eb7 (parent) -> 26bfbf2 (this PR)

Test differences

Show 1163 test diffs

Stage 1

  • [run-make] tests/run-make/fat-lto-module-summary: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc-filter-doc_cfg-doctest: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/markdown-without-title: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/cargo-transitive-read-write: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/kitchen-sink-separate-dirs: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/no-merge-separate: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/no-merge-write-anyway: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/overwrite: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/overwrite-but-include: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/overwrite-but-separate: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/single-crate-finalize: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/single-crate-read-write: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/transitive-merge-none: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/transitive-merge-read-write: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/transitive-no-info: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/two-separate-out-dir: [missing] -> pass (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/cargo-transitive-read-write/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/kitchen-sink-separate-dirs/indigo.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/no-merge-separate/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/no-merge-write-anyway/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/overwrite-but-include/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/overwrite-but-separate/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/overwrite/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/single-crate-finalize/quebec.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/single-crate-read-write/quebec.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/single-crate-write-anyway/quebec.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/transitive-merge-none/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/transitive-merge-read-write/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/transitive-no-info/sierra.rs: pass -> [missing] (J2)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/two-separate-out-dir/echo.rs: pass -> [missing] (J2)
  • [ui] tests/rustdoc-ui/doc-meta-read-write-err.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/reborrow/coerce-shared-field-region-obligation.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/reborrow/coerce-shared-multi-non-zst.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/reborrow/coerce-shared-omitted-zst-field.rs: [missing] -> pass (J3)
  • [ui] tests/ui/reborrow/coerce-shared-field-region-obligation.rs: [missing] -> pass (J7)
  • [ui] tests/ui/reborrow/coerce-shared-multi-non-zst.rs: [missing] -> pass (J7)
  • [ui] tests/ui/reborrow/coerce-shared-omitted-zst-field.rs: [missing] -> pass (J7)

Stage 2

  • [run-make] tests/run-make/fat-lto-module-summary: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/markdown-without-title: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/cargo-transitive-read-write: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/kitchen-sink-separate-dirs: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/no-merge-separate: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/no-merge-write-anyway: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/overwrite: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/overwrite-but-include: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/overwrite-but-separate: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/single-crate-finalize: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/single-crate-read-write: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/transitive-merge-none: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/transitive-merge-read-write: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/transitive-no-info: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc/merge-cross-crate-info/two-separate-out-dir: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/cargo-transitive-read-write/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/kitchen-sink-separate-dirs/indigo.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/no-merge-separate/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/no-merge-write-anyway/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/overwrite-but-include/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/overwrite-but-separate/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/overwrite/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/single-crate-finalize/quebec.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/single-crate-read-write/quebec.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/single-crate-write-anyway/quebec.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/transitive-merge-none/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/transitive-merge-read-write/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/transitive-no-info/sierra.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/merge-cross-crate-info/two-separate-out-dir/echo.rs: pass -> [missing] (J1)
  • [ui] tests/rustdoc-ui/doc-meta-read-write-err.rs: [missing] -> pass (J1)
  • [run-make] tests/run-make/rustdoc-filter-doc_cfg-doctest: [missing] -> pass (J4)
  • [run-make] tests/run-make/rustdoc-filter-doc_cfg-doctest: [missing] -> ignore (ignored when cross-compiling) (J5)
  • [ui] tests/ui/reborrow/coerce-shared-field-region-obligation.rs: [missing] -> pass (J6)
  • [ui] tests/ui/reborrow/coerce-shared-multi-non-zst.rs: [missing] -> pass (J6)
  • [ui] tests/ui/reborrow/coerce-shared-omitted-zst-field.rs: [missing] -> pass (J6)
  • [assembly] tests/assembly-llvm/indexing-with-bools-no-redundant-instructions.rs: ignore (ignored when the LLVM version (23.1.0) is newer than majorversion 22) -> pass (J8)
  • [assembly] tests/assembly-llvm/indexing-with-bools-no-redundant-instructions.rs: ignore (ignored when the LLVM version (23.1.0) is newer than majorversion 22) -> ignore (only executed when the architecture is x86_64) (J9)

Additionally, 1089 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 26bfbf28f5f79dff333ce5a232f131b496ec9cfe --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. dist-sparcv9-solaris: 1h 7m -> 1h 34m (+41.1%)
  2. x86_64-gnu-gcc-core-tests: 13m 55s -> 8m 20s (-40.1%)
  3. i686-msvc-1: 2h 55m -> 1h 49m (-37.9%)
  4. x86_64-gnu-gcc: 1h 7m -> 41m 54s (-37.7%)
  5. x86_64-msvc-ext2: 1h 23m -> 1h 54m (+36.7%)
  6. x86_64-gnu-parallel-frontend: 2h 4m -> 1h 21m (-34.7%)
  7. dist-i586-gnu-i586-i686-musl: 24m 53s -> 16m 54s (-32.1%)
  8. i686-gnu-nopt-1: 2h 14m -> 1h 37m (-27.3%)
  9. x86_64-gnu: 1h 52m -> 2h 22m (+27.1%)
  10. test-various: 2h 7m -> 1h 33m (-26.5%)
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
#159014 [rustdoc] Do not take doc(cfg()) into account when filter… 8c664ff890194e55cf413b326e638c03b4a39353 (link)
#159029 rustc_llvm: Emit module summaries when using -Clto=fat 6df2fbc231bba7aebe8ac3e350c0b5f3db3e038e (link)
#160574 Update rustc-perf submodule 7632d19d0dcf1c67a5783062e3f4bdc88dddd339 (link)
#154585 treat no_mangle_generic_items as hard error instead of lint… 6bfa38cd87943a179364f79ae06f75d22ff33445 (link)
#159473 Fix, simplify, and document doc meta finalize mode e1a576d7fe87fbbd0d4d5231b2b622d7be7465c2 (link)
#157489 Add CoerceShared field-wise reborrow WF checks 251940c71c255a751dab1d3cac192f3baa0d0bb3 (link)
#160532 Add Enzyme bugfix to support rust+llvm23 6e11d9b8084e407875c514aa2e8524418d76d9f4 (link)
#160545 Reorder the methods in #[rustc_must_implement_one_of] 9a963c85478bb5967f20b8cca8c6d4cf04f1c9c9 (link)
#160558 Revert "codegen_ssa: no dbginfo for scalable vec local w/ `… 36c25ca25501eaead6353d0c5af003ed96867ebc (link)
#160566 Re-enable bool indexing assembly test for LLVM 23 c78de63a3c40828cb56e220f6ed73cc28bccaf50 (link)
#160569 Remove OnDuplicate::Custom 68f92628909ce2a6b4b21472d7cba7a3b2fc62e5 (link)
#160576 [rustdoc] Create output file after we checked that the stan… 7c0cf8d77fb835304f63cafb60588e9f0206993c (link)

previous master: 7608eb7b07

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 (26bfbf2): 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.4% [0.3%, 0.4%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 4.5%, secondary -5.3%)

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

mean range count
Regressions ❌
(primary)
8.0% [7.4%, 8.7%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.6% [-2.6%, -2.6%] 1
Improvements ✅
(secondary)
-5.3% [-5.3%, -5.3%] 1
All ❌✅ (primary) 4.5% [-2.6%, 8.7%] 3

Cycles

Results (secondary -2.7%)

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

Binary size

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

Bootstrap: 459.618s -> 459.691s (0.02%)
Artifact size: 398.58 MiB -> 398.70 MiB (0.03%)

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 F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. O-hermit Operating System: Hermit O-linux Operating system: Linux O-netbsd Operating system: NetBSD O-redox Operating system: Redox, https://www.redox-os.org/ O-SGX Target: SGX O-solid Operating System: SOLID O-unix Operating system: Unix-like O-wasi Operating system: Wasi, Webassembly System Interface O-wasm Target: WASM (WebAssembly), http://webassembly.org/ O-windows Operating system: Windows rollup A PR which is a rollup 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.