Skip to content

Rollup of 5 pull requests#159556

Merged
rust-bors[bot] merged 107 commits into
rust-lang:mainfrom
jhpratt:rollup-h68KPYG
Jul 19, 2026
Merged

Rollup of 5 pull requests#159556
rust-bors[bot] merged 107 commits into
rust-lang:mainfrom
jhpratt:rollup-h68KPYG

Conversation

@jhpratt

@jhpratt jhpratt commented Jul 19, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

LorrensP-2158466 and others added 30 commits July 12, 2026 13:13
…is is the same behaviour as `posix_fallocate`.

And add tests for `fallocate` based on `posix_fallocate`.
To match the deadlocked diagnostic in both tests, we will need to
call the `libc::read/write()` methods directly.
memcmp: add tests and update comments
This updates the rust-version file to 48c2cee.
FileDescription: make destroy a NOP by default and document the risks
This updates the rust-version file to 55b6bd8.
remove bogus sanity check from weak memory mixed-size logic
Dropped readiness watchers are now removed from the global readiness
interest table when the GC runs.
This updates the rust-version file to 38a0576.
scottmcm and others added 6 commits July 18, 2026 23:29
Of late I've been looking at layout a bunch, which means staring at things like

```rust
backend_repr: ScalarPair {
    a: Initialized {
        value: Int(
            I8,
            false,
        ),
        valid_range: 0..=1,
    },
    b: Union {
        value: Int(
            I8,
            false,
        ),
    },
    b_offset: Size(1 bytes),
},
```

and that's just kinda long and unfriendly.

Thus this PR that just changes `Debug` -- nothing else! -- so for example that shows as

```rust
backend_repr: ScalarPair {
    a: u8 is 0..=1,
    b: union u8,
    b_offset: Size(1 bytes),
},
```
…clarfonthey

Move `std::io::BufRead` to `alloc::io`

ACP: rust-lang/libs-team#755
Tracking issue: rust-lang#154046
Split From: rust-lang#156527
~~Blocked On: rust-lang#158545

## Description

Moves `std::io::BufRead` to `alloc::io`. This is effectively a direct cut and paste, but with a large diff due to how many implementations need to be moved into `alloc`. Blocked on rust-lang#158545.

---

## Notes

* No AI tooling of any kind was used during the creation of this PR.
* Please see rust-lang#154046 (comment) for a review order and broader context for this PR.
…=jhpratt

Remove SIZE generic param from DisplayBuffer in core::net

These symbols were observed on the surface of `core.o`:
```
<core::net::display_buffer::DisplayBuffer<15> as core::fmt::Write>::write_char
<core::net::display_buffer::DisplayBuffer<15> as core::fmt::Write>::write_fmt
<core::net::display_buffer::DisplayBuffer<15> as core::fmt::Write>::write_str
<core::net::display_buffer::DisplayBuffer<21> as core::fmt::Write>::write_char
<core::net::display_buffer::DisplayBuffer<21> as core::fmt::Write>::write_fmt
<core::net::display_buffer::DisplayBuffer<21> as core::fmt::Write>::write_str
<core::net::display_buffer::DisplayBuffer<39> as core::fmt::Write>::write_char
<core::net::display_buffer::DisplayBuffer<39> as core::fmt::Write>::write_fmt
<core::net::display_buffer::DisplayBuffer<39> as core::fmt::Write>::write_str
<core::net::display_buffer::DisplayBuffer<58> as core::fmt::Write>::write_char
<core::net::display_buffer::DisplayBuffer<58> as core::fmt::Write>::write_fmt
<core::net::display_buffer::DisplayBuffer<58> as core::fmt::Write>::write_str
```
There's no reason to instantiate four different copies of this super simple logic, so remove the size parameter allowing each case to call into the same shared machine code.

It's not possible to inline these symbols into the `{SocketAddrV*,Ipv*Addr}::fmt` methods because `core::fmt::write` constructs a `&mut dyn fmt::Write` to the `DisplayBuffer`.
…p, r=mejrs

Some cleanup in `rustc_attr_parsing`

My hands got itchy while digging through a few modules.

...and maybe run perf? IDK

r? compiler
…-debug, r=jieyouxu

[rustc_abi] Customize `Debug` for `Primitive` and `Scalar`

Of late I've been looking at layout a bunch, which means staring at things like

```rust
backend_repr: ScalarPair {
    a: Initialized {
        value: Int(
            I8,
            false,
        ),
        valid_range: 0..=1,
    },
    b: Union {
        value: Int(
            I8,
            false,
        ),
    },
    b_offset: Size(1 bytes),
},
```

and that's just kinda long and unfriendly.

Thus this PR that just changes `Debug` -- nothing else! -- so for example that shows as

```rust
backend_repr: ScalarPair {
    a: u8 is 0..=1,
    b: union u8,
    b_offset: Size(1 bytes),
},
```

---

EDIT: oh, net -1404 lines is a pretty good summary of why 🙃
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jul 19, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) 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 Jul 19, 2026
@jhpratt

jhpratt commented Jul 19, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 152f857 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 Jul 19, 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 Jul 19, 2026
@rust-bors

rust-bors Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 13m 42s
Pushing 234c31c to main...

@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#158546 Move std::io::BufRead to alloc::io 769d9dde41d31988fa5cf77c3d51a77be133ccdd (link)
#159372 Remove SIZE generic param from DisplayBuffer in core::net c82d4cfb4c7ef9af12ec466d3503aa52eb1bf88e (link)
#159548 miri subtree update c243d32b4bf8d5859cb161d43a0b52ec5b89fb12 (link)
#159508 Some cleanup in rustc_attr_parsing fd3d254822ef95c3753109e4a5137222ff05860a (link)
#159539 [rustc_abi] Customize Debug for Primitive and Scalar 56408d5883e7d3eb3e5b170f14be5bc5f36d2b8f (link)

previous master: c7d7da3428

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 c7d7da3 (parent) -> 234c31c (this PR)

Test differences

Show 232 test diffs

232 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 234c31cd674e11703f15d290cba7ff81dfe8b4b8 --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-1: 41m 44s -> 1h (+44.0%)
  2. i686-gnu-2: 1h 41m -> 1h 7m (-33.1%)
  3. x86_64-gnu-llvm-21-3: 1h 31m -> 1h 57m (+28.4%)
  4. x86_64-gnu-aux: 2h 9m -> 2h 43m (+26.3%)
  5. dist-powerpc64le-linux-musl: 1h 13m -> 1h 32m (+25.7%)
  6. dist-armv7-linux: 1h 27m -> 1h 4m (-25.6%)
  7. dist-x86_64-netbsd: 1h 9m -> 1h 26m (+24.1%)
  8. optional-x86_64-gnu-parallel-frontend: 1h 45m -> 2h 9m (+23.3%)
  9. pr-check-2: 40m 14s -> 30m 53s (-23.2%)
  10. x86_64-msvc-ext2: 1h 53m -> 1h 29m (-21.7%)
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 (234c31c): 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.2% [-0.2%, -0.2%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -0.7%, secondary 0.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)
4.2% [3.7%, 5.1%] 4
Improvements ✅
(primary)
-0.7% [-0.7%, -0.7%] 1
Improvements ✅
(secondary)
-6.8% [-7.6%, -6.0%] 2
All ❌✅ (primary) -0.7% [-0.7%, -0.7%] 1

Cycles

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

Binary size

Results (primary 0.0%, 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.1% [0.0%, 0.2%] 11
Regressions ❌
(secondary)
0.1% [0.0%, 0.1%] 4
Improvements ✅
(primary)
-0.0% [-0.0%, -0.0%] 4
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [-0.0%, 0.2%] 15

Bootstrap: 484.052s -> 488.235s (0.86%)
Artifact size: 391.68 MiB -> 392.45 MiB (0.20%)

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. 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.