Skip to content

Rollup of 15 pull requests#155837

Merged
rust-bors[bot] merged 54 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-aPhy30j
Apr 26, 2026
Merged

Rollup of 15 pull requests#155837
rust-bors[bot] merged 54 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-aPhy30j

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

ChrisDenton and others added 30 commits April 13, 2026 21:25
Also use the `\Device\NamedPipe\` directly instead of the symlink to it.
…tilities to observe, set, and create a Permissions struct with certain file attributes
The hyperlink to `std::io::Error` will not be valid when moved to `core::io`.
There is also a typo which I might as well fix while I'm here.
Inconsistently referenced through `std::sys` and `std::io`. Choosing `std::io` as the canonical source to make migration to `core::io` cleaner.
This version no longer requires using big import libraries and instead
uses raw-dylib.
unnamed_socket: do not introduce artifical short reads/writes
…e-short-ops

Remove artificial short reads/writes from TCP sockets
Some architectures, such as RISC-V and LoongArch, lack support for
native byte-sized atomic operations, so weak operations fallback to
non-weak operations and are actually emulated by LL/SC loop, which never
fail.
Use `AtomicUsize` instead of `AtomicBool` to test weak atomic for targets lacking byte-sized atomic
The previously pinned version of openssl-sys is not compatible with
OpenSSL 4.0.x.

- `openssl-sys`: 0.9.111 -> 0.9.114
This updates the rust-version file to 9836b06.
bump openssl-sys to support OpenSSL 4.0.x
…xvar_epi64

Implement `_mm512_permutexvar_epi64` shim
…anilla

Suggest enclosing format string with `""` under special cases

This commit adds suggestions on enclosing format string with `""` when it falls into the following 3 cases: `{}`, `{:?}`, `{:#?}` as mentioned in rust-lang#155508.

Currently, this commit only recognizes the above 3 cases. I wonder if we should generalize this to more cases, for example, appying this suggestion to `Block`s with only 0 or 1 `Stmt`, such as `{:#x}`, `{:^10}`, `{abc}`.
…imulacrum

Fix minor panic-unsoundness in CString::clone_into

`CString` must always contain a null byte, calling `mem::take` on its inner allocation puts it in an invalid state (causing UB if e.g. it hits `CString::drop`) that can be observed if the allocator panics.

Unfortunately, this solution allocates an intermediate 1-element `Box`. I'm not sure of a clean way to avoid that additional allocation; we could directly `realloc` if we want but it's tricky. Might be something we can do with `ManuallyDrop`.

I do have a gnarly miri test for this that uses a panicky allocator, but I'm not sure where it would go. Happy to push it up if someone has a suggestion.

Bug discovered by Rust Foundation Security using AI. I'm just helping with the patch as a member of wg-security-response. We do not believe this bug needs embargo, it is a soundness fix for hard-to-trigger unsoundness.
…rojections-issue-155365, r=ShoyuVanilla

Suggest `.iter()` for shared projections

Fixes rust-lang#155365.
…r=Kivooeo

ssa_range_prop: use `if let` guards

It is a bit cleaner this way

r? @dianqk
…ejrs

Cleanups to `AttributeExt`

r? @mejrs

- Makes some functions take `ast::Attribute` instead of `impl AttributeExt`
- Remove `deprecation_note` from `AttributeExt`, since the two implementations are basically seperate
Mention `DEPRECATED_LLVM_INTRINSIC` lint for internal use

Since `link_llvm_intrinsics` is an internal feature, having `deprecated_llvm_intrinsic` lint appearing in https://doc.rust-lang.org/nightly/rustc/lints/listing/allowed-by-default.html#deprecated-llvm-intrinsic without mentioning its internal nature is quite confusing to the end users.

This PR improves the documentation of recently merged PR rust-lang#140763 that implemented `deprecated_llvm_intrinsic` lint by mentioning the internal nature of `deprecated_llvm_intrinsic` lint and `link_llvm_intrinsics` feature.

Tracking issue of unstable `link_llvm_intrinsics` feature: rust-lang#29602
…rk-unstable, r=jhpratt,Urgau

Remove the incomplete marker from `impl` restrictions

Following the discussion on Zulip ([#gsoc > Idea: Implementing impl and mut restrictions @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/421156-gsoc/topic/Idea.3A.20Implementing.20impl.20and.20mut.20restrictions/near/590562763)),this PR removes the incomplete marker from `#[feature(impl_restriction)]`.
Tracking issue for restrictions: rust-lang#105077.

r? @Urgau
cc @jhpratt
Avoid improper spans when `...` or `..=` is recovered from non-ASCII

- Fixes rust-lang#155799

Adjusting span endpoints by `BytePos(1)` is almost always bad news.

In this case, the code assumed that it was skipping over a single ASCII character. But in the presence of parser recovery from other non-ASCII characters this resulted in an ICE due to bad string indexing when emitting suggestions.
…Brouwer

Add default field values to diagnostic FormatArgs

This type has a decent amount of unused fields (and I am planning to add more).
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Apr 26, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) 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. labels Apr 26, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 26, 2026

📌 Commit 139bcba 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 26, 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 26, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 26, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 22m 3s
Pushing ca9a134 to main...

@rust-bors rust-bors Bot merged commit ca9a134 into rust-lang:main Apr 26, 2026
12 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 26, 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 d4f7856 (parent) -> ca9a134 (this PR)

Test differences

Show 133 test diffs

Stage 1

  • [ui] tests/ui/macros/suggest-enclosing-format-string.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/range-inclusive-suggestion-span.rs: [missing] -> pass (J0)
  • [ui] tests/ui/pin/dont-deref-coerce-pinned-value.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/macros/suggest-enclosing-format-string.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/range-inclusive-suggestion-span.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pin/dont-deref-coerce-pinned-value.rs: [missing] -> pass (J1)

Additionally, 127 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 ca9a134e0985765ded9cfdde4030a5df4db7e2bd --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-llvm-21: 54m 30s -> 1h 19m (+45.3%)
  2. x86_64-gnu-llvm-22-2: 1h 12m -> 1h 42m (+42.1%)
  3. x86_64-rust-for-linux: 43m 52s -> 55m 39s (+26.8%)
  4. pr-check-1: 27m 52s -> 35m 9s (+26.1%)
  5. aarch64-apple: 2h 34m -> 3h 2m (+18.5%)
  6. dist-powerpc-linux: 1h 13m -> 1h 27m (+18.4%)
  7. pr-check-2: 38m 11s -> 44m 59s (+17.8%)
  8. x86_64-gnu-gcc: 1h -> 1h 10m (+17.3%)
  9. i686-gnu-2: 1h 29m -> 1h 44m (+17.2%)
  10. dist-x86_64-apple: 1h 42m -> 1h 58m (+15.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
#152995 ACP Implementation of PermissionsExt for Windows a811608750ad194c5a330d905e29d55bb9d65582 (link)
#153457 prevent deref coercions in pin! 82fbf8301e23414d61422ba8863d5ec21e3d4cc0 (link)
#155250 Windows: Cache the pipe filesystem handle bfc49704d75fd2de38338b5f6fa4363c0cf202c4 (link)
#155574 Move std::io::RawOsError to core::io 71345f2edb81fc8b25f7e3f076207881e24fc334 (link)
#155693 Suggest enclosing format string with "" under special cas… fb605445d70ad020b8ca4f78c9ac2b676d25cf20 (link)
#155707 Fix minor panic-unsoundness in CString::clone_into 1121de50c26b9051e786ef1ca80c2f7df675eefd (link)
#155719 Suggest .iter() for shared projections 4ae673de20b95862c58d15af8093219d0e5138c0 (link)
#155757 macro_metavar_expr_concat: explain why idents are invalid 847d8bbaf0f02b857aa6dca5c8d552ba5936278a (link)
#155779 ssa_range_prop: use if let guards 1519a30f84dae29f8fc01f6af7b233059eafbb92 (link)
#155789 Cleanups to AttributeExt 79d873472ccdf9f6744e1bee8731db847c4c5c80 (link)
#155805 Mention DEPRECATED_LLVM_INTRINSIC lint for internal use 0f277477f33e3973b2c764715ac9e867b175145f (link)
#155806 Remove the incomplete marker from impl restrictions fd6f8921ecc44e5e69f523b4375ca2768fd2f56b (link)
#155820 Avoid improper spans when ... or ..= is recovered from … 295fc85505a6a42c94039fe76b2288b1669f0ccb (link)
#155822 Add default field values to diagnostic FormatArgs 91f71ffb57b7f75d7ad6f1cade84048a90c2467e (link)
#155823 miri subtree update 9d834efc6061a535f053e745f796cc04c4b2058e (link)

previous master: d4f7856569

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

Overall result: ✅ 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
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.3% [-0.3%, -0.3%] 2
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary 2.2%)

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

Cycles

Results (primary 2.2%)

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

mean range count
Regressions ❌
(primary)
2.2% [2.2%, 2.2%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.2% [2.2%, 2.2%] 1

Binary size

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

Bootstrap: 488.853s -> 488.117s (-0.15%)
Artifact size: 393.54 MiB -> 393.52 MiB (-0.00%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) merged-by-bors This PR was explicitly merged by bors. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.