Skip to content

Rollup of 5 pull requests#154659

Merged
rust-bors[bot] merged 14 commits intorust-lang:mainfrom
chenyukang:rollup-D1UvH9O
Apr 1, 2026
Merged

Rollup of 5 pull requests#154659
rust-bors[bot] merged 14 commits intorust-lang:mainfrom
chenyukang:rollup-D1UvH9O

Conversation

@chenyukang
Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

devnexen and others added 14 commits February 28, 2026 07:02
Duration::as_secs() returns u64 but l_linger field type is narrower,
c_int on most unix platforms, c_ushort on cygwin and windows.
clamping before the cast, consistent with how set_timeout handles this.
Checking that they really do use thin pointers.
- Add some explanatory comments.
- Rename `OpaqueListContents` as `ExternTy`. I've always found both the
  "opaque" and "contents" parts of this name to be confusing. Calling it
  `ExternTy` makes it clear that all that matters is it's an extern
  type.
- Merge the `List` and `ListWithCachedTypeInfo` impls by referring to
  the shared underlying type, `RawList`. This required increasing the
  visibility of `RawList`.

- Explain why a separate impl is needed for `RawList`.

- Remove an incorrect FIXME comment. Fat reference types will always
  need a separate impl. (To be sure, one could use `T: ?Sized` to merge
  the impls for `&T` and `&[T]` and it would compile but it would behave
  incorrectly because `&T` needs one word of storage and `&[T]` needs
  two words of storage. I tried it and it did not go well.)
…ight thing

specifically this emits an error when

- a custom target is used
- `RiscV32 if self.llvm_abiname == "ilp32e"` this abi is used for 32-bit
  embedded targets, and clang/llvm document that the ABI may change in
  the future.
…tgross35

c-variadic: error when we can't guarantee that the backend does the right thing

tracking issue: rust-lang#44930
r? workingjubilee

as discussed in [#t-lang > stabilizing &rust-lang#96;c_variadic&rust-lang#96;](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/stabilizing.20.60c_variadic.60/with/574691397), display an error when we can't guarantee that the codegen backend (only LLVM is supported at the moment) does the right thing.
…nieu

std::net: clamp linger timeout value to prevent silent truncation.

Duration::as_secs() returns u64 but l_linger field type is narrower, c_int on most unix platforms, c_ushort on cygwin and windows. clamping before the cast, consistent with how set_timeout handles this.
Fix `mismatched_lifetime_syntaxes` suggestions for hidden path lifetimes

close: rust-lang#154493

r? shepmaster

cc: @chenyukang
fix pin docs

This PR fixes a small grammatical error in the projection section of the pin docs. There is probably more than one answer for the fix, but I felt that this correction was the *smallest*.
…iper

Clarify `ty::List`

`ty::List` is an unusual type. This commit clarifies some things about it. Details in individual commits.

r? @cuviper
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Apr 1, 2026
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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. labels Apr 1, 2026
@chenyukang
Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 1, 2026

📌 Commit 18f8cd2 has been approved by chenyukang

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: chenyukang
Duration: 3h 10m 6s
Pushing 3ebe60c to main...

@rust-bors rust-bors bot merged commit 3ebe60c 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
#152935 c-variadic: error when we can't guarantee that the backend … e0e70fdb62f6516c9c3a99758564beb70f79d0e7 (link)
#153207 std::net: clamp linger timeout value to prevent silent trun… 4c52b6b80fde780a09e22b3c8f124d176edec52e (link)
#154592 Fix mismatched_lifetime_syntaxes suggestions for hidden p… a6d4b2dd6b2db6d5acea11a13a592c46a7dc6755 (link)
#154643 fix pin docs 3b697077df00afcd59cf23b9dcbeec48723c1fd8 (link)
#154648 Clarify ty::List 7f3547e7e9d6934b539b06d03592dc49929e037b (link)

previous master: 12ab1cf1fd

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 12ab1cf (parent) -> 3ebe60c (this PR)

Test differences

Show 34 test diffs

Stage 1

  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes-details/macro.rs: [missing] -> pass (J0)
  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes-details/mismatched-lifetime-syntaxes.rs: [missing] -> pass (J0)
  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes-details/path-count.rs: [missing] -> pass (J0)
  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes.rs: pass -> [missing] (J0)

Stage 2

  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes-details/macro.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes-details/mismatched-lifetime-syntaxes.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes-details/path-count.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lifetimes/mismatched-lifetime-syntaxes.rs: pass -> [missing] (J1)

Additionally, 26 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 3ebe60c8c30d1175019dcbdb957441cd84aa1220 --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. aarch64-apple: 2h 33m -> 3h 1m (+17.8%)
  2. dist-aarch64-apple: 1h 56m -> 1h 37m (-16.2%)
  3. dist-x86_64-freebsd: 1h 23m -> 1h 34m (+13.5%)
  4. dist-various-1: 1h 4m -> 1h 12m (+12.3%)
  5. dist-apple-various: 1h 34m -> 1h 43m (+10.0%)
  6. dist-ohos-x86_64: 1h 19m -> 1h 11m (-9.5%)
  7. dist-x86_64-apple: 1h 45m -> 1h 54m (+9.4%)
  8. x86_64-msvc-ext1: 2h 14m -> 2h 2m (-9.0%)
  9. aarch64-gnu-llvm-21-1: 56m 5s -> 1h 1m (+8.9%)
  10. x86_64-gnu-miri: 1h 25m -> 1h 33m (+8.9%)
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 (3ebe60c): 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.7% [-1.1%, -0.2%] 10
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.7% [-1.1%, -0.2%] 10

Max RSS (memory usage)

Results (primary 2.5%, secondary -0.2%)

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

mean range count
Regressions ❌
(primary)
3.4% [2.4%, 4.2%] 4
Regressions ❌
(secondary)
1.7% [1.6%, 1.8%] 2
Improvements ✅
(primary)
-1.2% [-1.2%, -1.2%] 1
Improvements ✅
(secondary)
-4.1% [-4.1%, -4.1%] 1
All ❌✅ (primary) 2.5% [-1.2%, 4.2%] 5

Cycles

Results (secondary 2.1%)

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

Binary size

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

Bootstrap: 482.203s -> 483.835s (0.34%)
Artifact size: 394.92 MiB -> 394.92 MiB (-0.00%)

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

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants