Skip to content

Conversation

@Zalathar
Copy link
Member

@Zalathar Zalathar commented Nov 14, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Zalathar and others added 30 commits November 11, 2025 14:34
This is an incremental step towards making the expansion tree central to
coverage mapping creation, which will be needed for proper expansion region
support.
This also replaces `push_covspan` with a separate covspan-filtering step,
because the relevant code is being reindented anyway.
This will make it easier to perform span refinement for child expansions.
The CStr docs used to say things about CStr that are only true for &CStr.

Also, it's the bytes that are being borrowed, not the reference. One could say that it's the reference that is doing the borrowing, rather than being borrowed.
There are only two call sites, and three of the arguments are identical
at both call sites. This commit removes those arguments and renames the
method accordingly.
... outside `tests/ui/never_type/`
…sociated_functions, r=lolbinarycat

Correctly link to associated trait items in reexports

Fixes rust-lang#148008.

Issue was that we didn't add anchors in this case.

r? ``````@lolbinarycat``````
…enyukang,petrochenkov

Some resolve cleanups

Minor improvements I found while looking over this code.

r? ```````@petrochenkov```````
…uwer

coverage: Associate hole spans with expansion tree nodes

This PR is another incremental step towards expansion region support in coverage instrumentation.

When preparing coverage mappings for a function, we extract “raw” spans from MIR, and then use “hole” spans extracted from HIR to avoid overlap with nested items and closures. That hole-carving process was historically built around the assumption that there would be one set of spans and holes per function, but expansion region support will need to invalidate that assumption.

Therefore, to be more friendly to future work on expansion regions, this PR associates each hole span with its corresponding node in the expansion tree, and makes the span refinement step obtain holes from the current node.

There should be no change to compiler output.
CStr docs: Fix CStr vs &CStr confusion

The CStr documentation used to say things about CStr that are only true for &CStr.

Also, it's the bytes that are being borrowed, not the reference. One could say that it's the reference that is doing the borrowing, rather than being borrowed.
…rsion, r=WaffleLapkin

add assembly test for infinite recursion with `become`

tracking issue: rust-lang#112788
fixes rust-lang#125698

Check that infinite recursion via `become` does not grow the stack (even on opt-level 0). The incomplete implementation of `become` did not guarantee that earlier. Although it's unlikely this ever regresses we may as well test it and close the issue.

r? ```@WaffleLapkin```
Move & adjust some `!`-adjacent tests

I'm trying to clean up tests relating to the never type...
…=mati865,jieyouxu

ignore `build-rust-analyzer` even if it's a symlink

r? `@jieyouxu`
@rustbot rustbot added 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 F-explicit_tail_calls `#![feature(explicit_tail_calls)]` 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. rollup A PR which is a rollup labels Nov 14, 2025
@Zalathar
Copy link
Member Author

Rollup of everything.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Nov 14, 2025

📌 Commit f589579 has been approved by Zalathar

It is now in the queue for this repository.

@bors bors 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 14, 2025
@Zalathar
Copy link
Member Author

@bors try jobs=x86_64-gnu-aux

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Nov 14, 2025
Rollup of 15 pull requests

try-job: x86_64-gnu-aux
@rust-bors
Copy link

rust-bors bot commented Nov 14, 2025

☀️ Try build successful (CI)
Build commit: 4e3017f (4e3017f0e70e3edb5e8a9b8b1f823f3f31f37625, parent: 7a72c5459dd58f81b0e1a0e5436d145485889375)

@bors
Copy link
Collaborator

bors commented Nov 14, 2025

⌛ Testing commit f589579 with merge c880acd...

@bors
Copy link
Collaborator

bors commented Nov 14, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing c880acd to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 14, 2025
@bors bors merged commit c880acd into rust-lang:main Nov 14, 2025
13 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Nov 14, 2025
@Zalathar Zalathar deleted the rollup-yfyhpcw branch November 14, 2025 08:46
@github-actions
Copy link
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 6d41834 (parent) -> c880acd (this PR)

Test differences

Show 338 test diffs

Stage 1

  • [assembly] tests/assembly-llvm/tail-call-infinite-recursion.rs: [missing] -> pass (J1)
  • [rustdoc] tests/rustdoc/import_trait_associated_functions.rs: [missing] -> pass (J1)
  • [ui] tests/ui/explicit-tail-calls/unsupported-abi/cmse-nonsecure-call.rs: [missing] -> pass (J1)
  • [ui] tests/ui/explicit-tail-calls/unsupported-abi/cmse-nonsecure-entry.rs: [missing] -> pass (J1)
  • [ui] tests/ui/never_type/dispatch_from_dyn_zst.rs: pass -> [missing] (J1)
  • [ui] tests/ui/self/dispatch_from_dyn_zst.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/never_type/dispatch_from_dyn_zst.rs: pass -> [missing] (J0)
  • [ui] tests/ui/self/dispatch_from_dyn_zst.rs: [missing] -> pass (J0)
  • [ui] tests/ui/explicit-tail-calls/unsupported-abi/cmse-nonsecure-call.rs: [missing] -> pass (J2)
  • [ui] tests/ui/explicit-tail-calls/unsupported-abi/cmse-nonsecure-entry.rs: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/tail-call-infinite-recursion.rs: [missing] -> pass (J3)
  • [ui] tests/ui/explicit-tail-calls/unsupported-abi/cmse-nonsecure-call.rs: [missing] -> ignore (gcc backend is marked as ignore) (J4)
  • [ui] tests/ui/explicit-tail-calls/unsupported-abi/cmse-nonsecure-entry.rs: [missing] -> ignore (gcc backend is marked as ignore) (J4)
  • [rustdoc] tests/rustdoc/import_trait_associated_functions.rs: [missing] -> pass (J5)

Additionally, 324 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 c880acdd3171dfafdb55be8cd9822a857e99348d --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-x86_64-apple: 5891.4s -> 7150.4s (+21.4%)
  2. pr-check-1: 1653.2s -> 1906.8s (+15.3%)
  3. x86_64-gnu-aux: 7282.7s -> 6549.7s (-10.1%)
  4. dist-powerpc-linux: 4839.4s -> 5314.3s (+9.8%)
  5. tidy: 169.5s -> 154.0s (-9.2%)
  6. x86_64-gnu-llvm-20-1: 3551.1s -> 3240.9s (-8.7%)
  7. aarch64-apple: 10183.8s -> 9346.4s (-8.2%)
  8. x86_64-gnu-gcc: 3426.5s -> 3690.4s (+7.7%)
  9. dist-aarch64-apple: 7495.9s -> 8033.7s (+7.2%)
  10. aarch64-gnu-llvm-20-1: 3756.2s -> 3500.3s (-6.8%)
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
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#148543 Correctly link to associated trait items in reexports 0c86a68f4a0b4becf5abf0ea55817d8df9d30a5e (link)
#148808 Some resolve cleanups 950a96693c54b1b4599d0b0fe638dccd3acfc1fc (link)
#148812 coverage: Associate hole spans with expansion tree nodes 729d7aae18be19bf97a568441c68c828e4f44bb6 (link)
#148826 CStr docs: Fix CStr vs &CStr confusion 506bc06a5c92695f2cdca1db015b5757faca45fd (link)
#148850 Implement Read::read_array 5d8d2d92a8739899bf935baee65d5b8fa1b79809 (link)
#148867 Refactor Box::take 0fd921379ef670916300fb682e444be64a2d0d0f (link)
#148870 Remove unused LLVMModuleRef argument 3e14beef325cfd5923e8de0fbdd614782fd6ffc1 (link)
#148878 error when ABI does not support guaranteed tail calls f503c0efcd2747b88421a973633290ae32cffaf3 (link)
#148901 Disable rustdoc-test-builder test partially for SGX target. a6c565371b948f00d34bbec72ae0d4d239baf6f7 (link)
#148902 add missing s390x target feature to std detect test 2f4112b144bd5b69f0654f3eab6bdeecd9e6a662 (link)
#148904 waffle: stop watching codegen ssa 920724442595d572e4751c8f90c80ee3c5f83575 (link)
#148906 Expose fmt::Arguments::from_str as unstable. 1654fcc5b6fed6c39a984c747a216bde61cd571b (link)
#148907 add assembly test for infinite recursion with become 572bc1ec32a5aea00c05430889b0946b2c279ff7 (link)
#148928 Move & adjust some !-adjacent tests 38f636e586af8ddcd17e45d6f0137867430e2bc0 (link)
#148929 ignore build-rust-analyzer even if it's a symlink fa1b8b1fe53736190559896fd752c25c92b43aae (link)

previous master: 6d41834e25

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
Collaborator

Finished benchmarking commit (c880acd): 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.4% [0.4%, 0.4%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.4%, 0.4%] 1

Max RSS (memory usage)

Results (secondary 0.3%)

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)
2.1% [1.9%, 2.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.1% [-3.1%, -3.1%] 1
All ❌✅ (primary) - - 0

Cycles

Results (secondary 3.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.9% [3.9%, 3.9%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%, 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.0% [0.0%, 0.0%] 13
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 12
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 13

Bootstrap: 476.969s -> 473.179s (-0.79%)
Artifact size: 388.67 MiB -> 388.67 MiB (0.00%)

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

Labels

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 F-explicit_tail_calls `#![feature(explicit_tail_calls)]` merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.