Skip to content

Rollup of 13 pull requests#155324

Merged
rust-bors[bot] merged 30 commits intorust-lang:mainfrom
jhpratt:rollup-BNB8Pcb
Apr 15, 2026
Merged

Rollup of 13 pull requests#155324
rust-bors[bot] merged 30 commits intorust-lang:mainfrom
jhpratt:rollup-BNB8Pcb

Conversation

@jhpratt
Copy link
Copy Markdown
Member

@jhpratt jhpratt commented Apr 15, 2026

Successful merges:

r? @ghost

Create a similar rollup

krtab and others added 30 commits April 3, 2026 19:04
This especially means that for c: char, c.is_ascii() &&
c.is_whitespace() does **not** imply c.is_ascii_whitespace().
A recent LLVM change broke these on LLVM 23.
Co-authored-by: Chris Denton <chris@chrisdenton.dev>
These comments appear to have been written before `BorrowedBuf`'s
init tracking was simplified in
rust-lang#150129. The `BufWriter` comment
of the usage within `BufWriter` will be handled separately.
One of these has a "FIXME(autodiff): I should get used somewhere"
comment, but I figure YAGNI applies and it's so small that reinstating
it if necessary would be trivial.
…=BoxyUwU

Gate tuple const params behind `min_adt_const_params` feature

r? BoxyUwU
…, r=chenyukang

explicit-tail-calls: disable two tests on LoongArch

A [recent LLVM change](llvm/llvm-project#191508) broke these on LLVM 23.

I suspect these will eventually be fixed, so maybe it'd be okay/better to just leave this pending so it applies to our CI without merging it? I'm open to opinions.
…umeGomez

fix arch names in cfg pretty printer

It's introduced in rust-lang#154328.

@rustbot label +beta-nominated

(it affects the documentation of [`core::arch::loongarch32`](https://doc.rust-lang.org/beta/core/arch/loongarch32/index.html) and [`core::arch::loongarch64`](https://doc.rust-lang.org/beta/core/arch/loongarch64/index.html))
`BorrowedBuf`: Update outdated safety comments in `set_init` users.

These comments appear to have been written before `BorrowedBuf`'s init tracking was simplified in
rust-lang#150129. The `BufWriter` comment of the usage within `BufWriter` will be handled separately.

CC rust-lang#78485, rust-lang#117693.
…h-behavior, r=ChrisDenton

docs: clarify path search behavior in std::process::Command::new

the existing docs mentioned that `PATH` is searched in an "os defined way" and that it could be controlled by setting PATH on the command but never explained which `PATH` is actually used.

on unix the key thing to understand is that when you modify the childs environment (via `env()`, `env_remove()`, or `env_clear()`), the `PATH` search uses whatever `PATH` ends up in the child's environment not the parents. so if you call `env_clear()` and forget to set `PATH`, you don't get the parents `PATH` as a fallback; you get the OS default (typically `/bin:/usr/bin`) which often won't find what you need.

the three cases are now documented:
- unmodified env: child inherits parents `PATH`, that gets searched
- `PATH` explicitly set `via env()`: the new value is searched
- `PATH` removed (`env_clear` or `env_remove`): falls back to OS default, not the parents `PATH`

on windows rust resolves the executable before spawning rather than letting `CreateProcessW` do it. the search order is: childs `PATH` (if explicitly set) first then system-defined directories then the parents `PATH`. the existing note about issue rust-lang#37519 is preserved.

limitations in this doc:
- the unix fallback path behavior ("typically `/bin:/usr/bin`") is verified for linux/glibc. behavior on macOS, BSD, and musl is similar in practice but not fully confirmed here.
- the windows search order is summarized as "system-defined directories" which actually includes the application directory (the directory of the calling process's executable) as a distinct step before the system dirs that detail is omitted for brevity.
- `posix_spawnp` `PATH` source (calling process environ vs envp argument) is ambiguous in the `POSIX` spec; the behavior here is inferred from the guard in `unix.rs` that bypasses `posix_spawn` when `PATH` has been modified.

closes rust-lang#137286 (hopefully)
…-Simulacrum,WaffleLapkin

Clarify ascii whitespace exclusion of vertical tab in the doc

This especially means that for `c: char`, `c.is_ascii() && c.is_whitespace()` does **not** imply `c.is_ascii_whitespace()`, which can cause bug and is highly counterintuitive.
…nup, r=lcnr

Some small nits for supertrait_item_shadowing, and additional testing

cc rust-lang#89151

r? types
…rn-white-space, r=jdonszelmann

Test/lexer unicode pattern white space

This PR adds a test for the Rust lexer to verify it correctly accepts vertical tab (`\x0B`) as valid whitespace between tokens. Vertical tab is part of Unicode Pattern_White_Space, which the Rust language specification uses to define whitespace.

Related: Outreachy tracking [Pattern_White_Space](https://www.unicode.org/reports/tr31/#R3a)
…athanBrouwer

Tests for precise-capture through RPIT and TAIT

- Tests for rust-lang#155151.

These tests succeed under `-Znext-solver`, but incorrectly fail under the old trait solver.

---

The bug can be triggered via return-position `impl Trait` on stable, but requires some rather contrived code. When using type-alias `impl Trait`, it's easier to imagine the issue being triggered by real code.
Delete unused `rustc_trait_selection` errors.

The first two of these are duplicated elsewhere in some form or another, apparently they became orphaned during various moves and refactors. The third is just never used.
remove ibraheemdev from review rotation

@ibraheemdev haven't reviewed any r-l/r PRs since October last year and has a backlog of [8 PRs at the moment of writing this](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+is%3Apr+assignee%3Aibraheemdev+label%3AS-waiting-on-review).

@ibraheemdev thank you for the reviews that you have done in the past! feel free to re-add yourself once you have time for this again :)
…onathanBrouwer

remove PointeeParser

this parser does nothing currently, as the current scope of `rustc_attr_parsing` only includes builtin attributes, and not derive macros

it isn't defined in `compiler/rustc_feature/src/builtin_attrs.rs`

all the actual parsing for `#[pointee]` is actually handled in `compiler/rustc_builtin_macros/src/deriving/coerce_pointee.rs`

r? @JonathanBrouwer
… r=Kivooeo

Remove dead diagnostic structs.

One of these has a "FIXME(autodiff): I should get used somewhere" comment, but I figure YAGNI applies and it's so small that reinstating it if necessary would be trivial.

r? @Kivooeo
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Apr 15, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-meta Area: Issues & PRs about the rust-lang/rust repository itself 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. labels Apr 15, 2026
@jhpratt
Copy link
Copy Markdown
Member Author

jhpratt commented Apr 15, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 15, 2026

📌 Commit aeaa849 has been approved by jhpratt

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

rust-bors bot commented Apr 15, 2026

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 53m 41s
Pushing 57cb10a to main...

@rust-bors rust-bors bot merged commit 57cb10a into rust-lang:main Apr 15, 2026
12 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 15, 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 bd1e7c7 (parent) -> 57cb10a (this PR)

Test differences

Show 1023 test diffs

Stage 1

  • [ui] tests/ui/const-generics/adt_const_params/tuple-wihtout-unsized_const_params-gate.rs: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/rpit/precise-capture-155151.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/rpit/precise-capture-155151.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/lexer/unicode-pattern-white-space.rs: [missing] -> pass (J0)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#off_normal: [missing] -> pass (J0)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#off_shadowing: [missing] -> pass (J0)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#on_normal: [missing] -> pass (J0)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#on_shadowing: [missing] -> pass (J0)
  • [ui] tests/ui/type-alias-impl-trait/precise-capture-155151.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/type-alias-impl-trait/precise-capture-155151.rs#next: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/const-generics/adt_const_params/tuple-wihtout-unsized_const_params-gate.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/rpit/precise-capture-155151.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/rpit/precise-capture-155151.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/lexer/unicode-pattern-white-space.rs: [missing] -> pass (J1)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#off_normal: [missing] -> pass (J1)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#off_shadowing: [missing] -> pass (J1)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#on_normal: [missing] -> pass (J1)
  • [ui] tests/ui/methods/supertrait-shadowing/unstable.rs#on_shadowing: [missing] -> pass (J1)
  • [ui] tests/ui/type-alias-impl-trait/precise-capture-155151.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/type-alias-impl-trait/precise-capture-155151.rs#next: [missing] -> pass (J1)

Additionally, 1003 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 57cb10ae1e27f54f72eb2968f6ddc8fe88b83ab5 --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-ext2: 1h 24m -> 2h (+42.0%)
  2. dist-x86_64-llvm-mingw: 1h 31m -> 2h 4m (+36.3%)
  3. x86_64-mingw-2: 2h 5m -> 2h 46m (+32.7%)
  4. dist-various-1: 54m 31s -> 1h 11m (+30.9%)
  5. x86_64-gnu-tools: 49m 19s -> 1h 4m (+30.0%)
  6. x86_64-gnu-gcc: 52m 19s -> 1h 6m (+27.7%)
  7. dist-aarch64-linux: 2h 31m -> 1h 50m (-27.0%)
  8. test-various: 1h 33m -> 1h 57m (+25.1%)
  9. i686-msvc-1: 2h 28m -> 3h 4m (+24.3%)
  10. arm-android: 1h 26m -> 1h 47m (+23.6%)
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
#153469 docs: clarify path search behavior in std::process::Command… a3283ca3a00787aff73717c25c0a5ae16fce73a1 (link)
#154765 Clarify ascii whitespace exclusion of vertical tab in the d… 8f649f15a67a89e0ecc27034295437ea27a8c44d (link)
#154882 Gate tuple const params behind min_adt_const_params featu… 58c8af14deae956c32159a8d3a01130d14e82b4f (link)
#155172 Some small nits for supertrait_item_shadowing, and addition… 68cb2d411a895fb02b64fd502bcbe253db22bffe (link)
#155259 explicit-tail-calls: disable two tests on LoongArch 62a22fc390397e3709610ca4f833371f7b5de3be (link)
#155279 Test/lexer unicode pattern white space 9c92f73bfc44ce1b98fd8208215062fccb8bc11e (link)
#155280 Tests for precise-capture through RPIT and TAIT 4c50e29c36f11759160822aedb6f2d0e72049725 (link)
#155293 fix arch names in cfg pretty printer 2c73c8b3c9ab8967569866393d08540fa84eed7b (link)
#155301 Delete unused rustc_trait_selection errors. 8f675418e16fc5d7e87f6ceae04ebc7cf04fb8ca (link)
#155303 remove ibraheemdev from review rotation 6e9f20ea76236e2e6eed25b36e325a0fed038e82 (link)
#155304 remove PointeeParser 32af75102b90fff06f549a403d52577209eef077 (link)
#155314 BorrowedBuf: Update outdated safety comments in `set_init… 20c5fe87c9be7d6dbd9470ca4b5c1d4c02f7159e (link)
#155319 Remove dead diagnostic structs. 33955a15a210d374ba3baa02193a1918c35823d6 (link)

previous master: bd1e7c7948

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 (57cb10a): comparison URL.

Overall result: ❌✅ regressions and improvements - 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.2% [0.2%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.2%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary -1.5%)

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

Cycles

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

Binary size

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

Bootstrap: 495.503s -> 489.055s (-1.30%)
Artifact size: 394.22 MiB -> 394.13 MiB (-0.02%)

@jhpratt jhpratt deleted the rollup-BNB8Pcb branch April 16, 2026 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-meta Area: Issues & PRs about the rust-lang/rust repository itself 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 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.