Skip to content

Rollup of 4 pull requests#154668

Merged
rust-bors[bot] merged 12 commits intorust-lang:mainfrom
jhpratt:rollup-ePnl7Di
Apr 1, 2026
Merged

Rollup of 4 pull requests#154668
rust-bors[bot] merged 12 commits intorust-lang:mainfrom
jhpratt:rollup-ePnl7Di

Conversation

@jhpratt
Copy link
Copy Markdown
Member

@jhpratt jhpratt commented Apr 1, 2026

Successful merges:

r? @ghost

Create a similar rollup

joshtriplett and others added 12 commits March 24, 2026 20:24
This allows traits in `core` to be sealed as well.

This could be the same trait as `std` via a re-export, but that would
require `core::sealed` to be `pub` (even if unstable). Keep them as
separate traits for now.
This provides `.truncate()`, `.saturating_truncate()`,
`.checked_truncate()`, and `.extend()`.

These only work within the same signedness (use `.cast_signed()` and
`.cast_unsigned()` to change sign).

The truncation methods only work to smaller (or equal) types.
`.extend()` only works to larger (or equal) types.

For the purposes of truncation and extending, `usize` is considered
larger than `u16` or `u8`. This is consistent with `From`/`Into`
conversions.

Adding these methods results in needing to update the output of one test
that gets a new method-name similarity result.

Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
…cate-extend, r=jhpratt

    Add integer truncation and extension methods

Tracking issue: rust-lang#154330

This provides `.truncate()`, `.saturating_truncate()`, `.checked_truncate()`, and `.extend()`.

These only work within the same signedness (use `.cast_signed()` and `.cast_unsigned()` to change sign).

The truncation methods only work to smaller (or equal) types. `.extend()` only works to larger (or equal) types.

For the purposes of truncation and extending, `u128` is considered larger than or equal to the size of `usize`, and `usize` is considered larger than `u16` or `u8`. We might, in the future, want to consider ways to expand this.

Much of this was pair-programmed with @Amanieu.

In order to seal the new traits, this PR also adds a `core::sealed::Sealed`, like the one in `std`. I didn't modify `std` to re-export the same one, since by definition it isn't nameable, and since doing that would require that it be nameable (even if it was `#[unstable]`).
…uillaumeGomez,jieyouxu

build_helper: fix yarn locking, add check, and bump lockfile

fixes rust-lang#154446

cc @aDotInTheVoid, @GuillaumeGomez

not sure if this needs review from t-rustdoc, t-bootstrap, or both.
…oss35

change `c_double` to `f32` on `avr` targets

Extracted from rust-lang#152980. That version also makes this change for `msp430` but that is actually incorrect based on https://www.ti.com/lit/ug/slau132r/slau132r.pdf table 5-1 that specifies `double` as `f64`.

r? tgross35
cc @Patryk27 @workingjubilee
…ializer-bound-syntax, r=jieyouxu

Fix associated type bound suggestion span issue

Fixes rust-lang#145586
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Apr 1, 2026
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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. labels Apr 1, 2026
@jhpratt
Copy link
Copy Markdown
Member Author

jhpratt commented Apr 1, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 1, 2026

📌 Commit 7f794c3 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 1, 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 1, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 1, 2026

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 12m 15s
Pushing 2bd7a97 to main...

@rust-bors rust-bors bot merged commit 2bd7a97 into rust-lang:main Apr 1, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Apr 1, 2026
@rust-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#154356 Add integer truncation and extension methods e6fe002cbcd8641c0be833312126cbccf1092a95 (link)
#154641 build_helper: fix yarn locking, add check, and bump lockfile cc88bd8e3f9bff77817065d84b053881e3bbab7f (link)
#154647 change c_double to f32 on avr targets 3fcd9410768c38c3028b90ca3a8a10f780b617ad (link)
#154655 Fix associated type bound suggestion span issue f0f788e6069000252b4b8768c81fcacd4b534af1 (link)

previous master: 3ebe60c8c3

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

github-actions bot commented Apr 1, 2026

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 3ebe60c (parent) -> 2bd7a97 (this PR)

Test differences

Show 656 test diffs

Stage 1

  • [ui] tests/ui/trait-bounds/associated-error-bound-issue-145586.rs: [missing] -> pass (J0)
  • [ui] tests/ui/trait-bounds/deep-level-Send-bound-check-issue-40827.rs: pass -> [missing] (J0)
  • [ui] tests/ui/trait-bounds/deep-level-send-bound-check-issue-40827.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/trait-bounds/associated-error-bound-issue-145586.rs: [missing] -> pass (J1)
  • [ui] tests/ui/trait-bounds/deep-level-Send-bound-check-issue-40827.rs: pass -> [missing] (J1)
  • [ui] tests/ui/trait-bounds/deep-level-send-bound-check-issue-40827.rs: [missing] -> pass (J1)

Additionally, 650 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 2bd7a97871a74d4333bd3edb6564136167ac604b --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-aarch64-linux: 1h 43m -> 2h 27m (+43.3%)
  2. dist-x86_64-apple: 1h 54m -> 1h 36m (-15.7%)
  3. test-various: 2h 8m -> 1h 48m (-15.6%)
  4. optional-x86_64-gnu-parallel-frontend: 2h 43m -> 2h 19m (-14.6%)
  5. dist-aarch64-apple: 1h 37m -> 1h 51m (+14.5%)
  6. x86_64-msvc-ext1: 2h 2m -> 2h 16m (+11.6%)
  7. aarch64-msvc-2: 1h 50m -> 1h 37m (-11.3%)
  8. armhf-gnu: 1h 32m -> 1h 22m (-10.6%)
  9. x86_64-msvc-1: 2h 27m -> 2h 38m (+8.0%)
  10. i686-gnu-2: 1h 44m -> 1h 36m (-7.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.

This was referenced Apr 1, 2026
@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2bd7a97): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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.2% [0.1%, 0.4%] 4
Regressions ❌
(secondary)
0.2% [0.0%, 0.3%] 14
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.4% [-1.1%, -0.0%] 5
All ❌✅ (primary) 0.2% [0.1%, 0.4%] 4

Max RSS (memory usage)

Results (primary 1.2%, secondary 1.4%)

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

mean range count
Regressions ❌
(primary)
1.2% [0.6%, 1.7%] 5
Regressions ❌
(secondary)
2.5% [1.2%, 3.9%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.9% [-0.9%, -0.9%] 1
All ❌✅ (primary) 1.2% [0.6%, 1.7%] 5

Cycles

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)
5.2% [2.1%, 7.7%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.7% [-5.1%, -3.9%] 3
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 483.835s -> 488.823s (1.03%)
Artifact size: 394.92 MiB -> 397.06 MiB (0.54%)

@rustbot rustbot added the perf-regression Performance regression. label Apr 1, 2026
@jhpratt jhpratt deleted the rollup-ePnl7Di branch April 2, 2026 03:11
@Mark-Simulacrum Mark-Simulacrum added the perf-regression-triaged The performance regression has been triaged. label Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants