Skip to content

Rollup of 4 pull requests - #154668

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

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

Conversation

@jhpratt

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

joshtriplettand 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
fixesrust-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
Fixesrust-lang#145586
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Apr 1, 2026
@rustbotrustbot 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
MemberAuthor

@bors r+ rollup=never p=5

@rust-bors

rust-borsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 7f794c3 has been approved by jhpratt

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-borsrust-borsBot 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

rust-borsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

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

@rust-bors
rust-borsBot merged commit 2bd7a97 into rust-lang:mainApr 1, 2026
12 checks passed
@rustbotrustbot 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#MessagePerf Build Sha
#154356Add integer truncation and extension methodse6fe002cbcd8641c0be833312126cbccf1092a95 (link)
#154641build_helper: fix yarn locking, add check, and bump lockfilecc88bd8e3f9bff77817065d84b053881e3bbab7f (link)
#154647change c_double to f32 on avr targets3fcd9410768c38c3028b90ca3a8a10f780b617ad (link)
#154655Fix associated type bound suggestion span issuef0f788e6069000252b4b8768c81fcacd4b534af1 (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
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.

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

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

meanrangecount
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%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.perf-regressionPerformance regression.perf-regression-triagedThe performance regression has been triaged.rollupA PR which is a rollupT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant 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

@jhpratt@rust-timer@Mark-Simulacrum@rustbot@joshtriplett@lolbinarycat@folkertdev@chenyukang