Skip to content

Rollup of 7 pull requests#155292

Merged
rust-bors[bot] merged 20 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-AJQWqfn
Apr 14, 2026
Merged

Rollup of 7 pull requests#155292
rust-bors[bot] merged 20 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-AJQWqfn

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

jakubadamw and others added 20 commits April 13, 2026 11:45
When a coroutine has too many parameters, `check_match` fails and
`construct_error` builds a MIR body with only the coroutine's computed
args (env + resume type). The user-provided signature, however, still
reflects all the parameters the user wrote. `check_signature_annotation`
then tries to `zip_eq` these two mismatched iterators, causing a panic.
Checking `tainted_by_errors` and bailing early avoids this, since
`construct_error` bodies cannot meaningfully be compared against user
annotations.
The local trim_ascii_start function in the markdown parser duplicates
<[u8]>::trim_ascii_start() from the standard library (stable since 1.80).
Remove the custom function and call the stdlib method directly.

No behaviour change.

Fixes rustfoundation/interop-initiative#53
The span location of the last segment in the desugared path is inherited from the star symbol's span
…on body

Instead of the last segment of the delegation path.
`self` is something that introduced by the whole delegation item, not some specific part of it, and the last segment may need to have a different context for path resolution purposes.
delegation: Track more precise spans for glob delegations

The last commit also fixes a macro hygiene issue with `self` in delegations found in rust-lang#154002.
…-start-with-stdlib, r=mati865

Replace custom trim_ascii_start with the standard library method

The markdown parser in `rustc_errors` has a local `trim_ascii_start` function that strips leading ASCII whitespace from a byte slice. The standard library has had `<[u8]>::trim_ascii_start()` since Rust 1.80, which does the same thing.

This PR removes the custom function and calls the stdlib method directly in `parse_unordered_li` and `parse_ordered_li`. No behaviour change.

I also added a test covering the list item leading-whitespace trimming behaviour, including a tab case.

Fixes rustfoundation/interop-initiative#53
…sayantn

add the `fma4` x86 target feature

tracking issue: rust-lang#155233

Implications are based on LLVM

https://github.com/llvm/llvm-project/blob/df6c82053c5e1f9814d130d423f34871bc6423c5/llvm/lib/Target/X86/X86.td#L201-L206

This feature adds a slightly better instruction encoding for fma. We might want to expose the intrinsics in `stdarch` with that target feature, but just adding the target feature in user code should already take advantage of this improved encoding.

This target feature is used in `libm`.

r? sayantn
coroutines: Skip the closure signature annotation check for tainted bodies

When a coroutine has too many parameters, `check_match` fails and `construct_error` builds a MIR body with only the coroutine's computed arguments (env + resume type). The user-provided signature, however, still reflects all the parameters the user wrote. `check_signature_annotation` then tries to `zip_eq` these two mismatched iterators, causing a panic. Checking `tainted_by_errors` and bailing early avoids this, since `construct_error` bodies cannot meaningfully be compared against user annotations.

Example currently ICEing:

```rust
fn main() {
    |(1, 42), ()| yield;
}
```

Closes rust-lang#139570.
limit duplicate-profiler-builtins test to targets that can do dynamic linking

this is the error I got for an example of such a target
```
=== STDERR ===
error: extern location for dylib_a does not exist: libdylib_a.so
 --> main.rs:2:5
  |
2 |     dylib_a::something();
  |     ^^^^^^^

error: extern location for dylib_b does not exist: libdylib_b.so
 --> main.rs:3:5
  |
3 |     dylib_b::something_else();
  |     ^^^^^^^
…ly-let-else, r=JonathanBrouwer

`#[rustc_must_match_exhaustively]` detect let else

Extension of rust-lang#155047, I forgor to lint on let-else :3
…tdev

Revert "allow `windows-gnu` targets to embed gdb visualizer scripts"

Fixes rust-lang#155277

This reverts commit 472b966.

This was merged as rust-lang#154840, but causes linker errors in the wild.

cc @Walnut356 @mati865
r? @ghost
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Apr 14, 2026
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Apr 14, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never 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-2

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 14, 2026

📌 Commit 2d27fe6 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 Apr 14, 2026
rust-bors bot pushed a commit that referenced this pull request Apr 14, 2026
Rollup of 7 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-2
@rust-bors

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 14, 2026

☀️ Try build successful (CI)
Build commit: d4a9349 (d4a93496b3beedc735cf5277a6d441672c1bcd77, parent: 12f35ad39ed3e39df4d953c46d4f6cc6c82adc96)

@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

Seems a little stuck but given that the stuck job is aarch64-apple it will probably eventually finish

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

rust-bors bot commented Apr 14, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 4h 14m 14s
Pushing a5c825c to main...

@rust-bors rust-bors bot merged commit a5c825c into rust-lang:main Apr 14, 2026
13 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 14, 2026
@rust-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#154049 delegation: Track more precise spans for glob delegations bb9c0972a9702f6bb1677809ead5b80122b078a0 (link)
#155134 Replace custom trim_ascii_start with the standard library m… d680f659d4a44ae4bff63ad63abf30f00bef1b3d (link)
#155218 coroutines: Skip the closure signature annotation check for… 86495fc0fbaece7dec40b9209549a2207eb981a7 (link)
#155235 add the fma4 x86 target feature 5731006cfa04b83a51915a39f2747f87845d9e60 (link)
#155274 limit duplicate-profiler-builtins test to targets that can … 6f580f5e697cc9dff6ead061f3991dfff3edea03 (link)
#155276 #[rustc_must_match_exhaustively] detect let else ccfc727af3e6d1f29fb7847c102c4d43c99944f6 (link)
#155281 Revert "allow windows-gnu targets to embed gdb visualizer… 44ffff9a9dda19f315f6e374d7c4654cd7c2cf2e (link)

previous master: 12f35ad39e

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@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 12f35ad (parent) -> a5c825c (this PR)

Test differences

Show 33 test diffs

Stage 0

  • markdown::parse::tests::test_list_item_leading_whitespace: [missing] -> pass (J1)

Stage 1

  • [crashes] tests/crashes/139570.rs: pass -> [missing] (J1)
  • [ui] tests/ui/coroutine/too-many-parameters-ice.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/impl-reuse-self-hygiene.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-fma4_target_feature.rs: [missing] -> pass (J1)
  • markdown::parse::tests::test_list_item_leading_whitespace: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/feature-gates/feature-gate-fma4_target_feature.rs: [missing] -> pass (J0)
  • [ui] tests/ui/coroutine/too-many-parameters-ice.rs: [missing] -> pass (J3)
  • [ui] tests/ui/delegation/impl-reuse-self-hygiene.rs: [missing] -> pass (J3)
  • [crashes] tests/crashes/139570.rs: pass -> [missing] (J4)
  • [ui] tests/ui/feature-gates/feature-gate-fma4_target_feature.rs: [missing] -> ignore (only executed when the architecture is x86_64) (J5)
  • [run-make] tests/run-make/duplicate-profiler-builtins: ignore (ignored when the profiler runtime is not available) -> ignore (ignored on targets without dynamic linking) (J6)

Additionally, 21 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 a5c825cd824ee0ef9463021078a2f464b4cc1a0d --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-stable: 1h 55m -> 2h 33m (+33.2%)
  2. aarch64-apple: 3h 22m -> 4h 7m (+22.2%)
  3. dist-x86_64-apple: 2h 10m -> 2h 38m (+21.6%)
  4. x86_64-gnu: 1h 50m -> 2h 14m (+21.5%)
  5. dist-powerpc64-linux-gnu: 1h 13m -> 1h 29m (+21.4%)
  6. dist-ohos-x86_64: 1h 16m -> 1h 1m (-19.1%)
  7. dist-s390x-linux: 1h 28m -> 1h 11m (-19.0%)
  8. dist-aarch64-apple: 1h 45m -> 2h 4m (+17.9%)
  9. dist-powerpc64le-linux-musl: 1h 31m -> 1h 17m (-15.1%)
  10. dist-apple-various: 1h 32m -> 1h 44m (+13.4%)
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 (a5c825c): 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.3% [0.3%, 0.3%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 2.1%, secondary -1.1%)

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

mean range count
Regressions ❌
(primary)
2.1% [2.1%, 2.1%] 1
Regressions ❌
(secondary)
2.5% [0.9%, 4.0%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.7% [-6.0%, -3.5%] 2
All ❌✅ (primary) 2.1% [2.1%, 2.1%] 1

Cycles

Results (primary 3.6%, secondary -3.2%)

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

mean range count
Regressions ❌
(primary)
3.6% [3.6%, 3.6%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.2% [-4.3%, -2.0%] 3
All ❌✅ (primary) 3.6% [3.6%, 3.6%] 1

Binary size

Results (primary -0.1%, secondary -0.1%)

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.1% [-0.1%, -0.0%] 15
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.0%] 20
All ❌✅ (primary) -0.1% [-0.1%, -0.0%] 15

Bootstrap: 489.936s -> 489.296s (-0.13%)
Artifact size: 394.18 MiB -> 394.04 MiB (-0.04%)

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

Labels

A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants