Skip to content

Rollup of 4 pull requests#154638

Merged
rust-bors[bot] merged 9 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-oLBZ6Tr
Mar 31, 2026
Merged

Rollup of 4 pull requests#154638
rust-bors[bot] merged 9 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-oLBZ6Tr

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

thesummer and others added 9 commits March 28, 2026 13:14
This create conflict if the timespec of a target has additional fields.
Use libc::timespec::default() instead
this enables packed-stack just as -mpacked-stack in clang and gcc.
packed-stack is needed on s390x for kernel development.

Co-authored-by: Ralf Jung <post@ralfj.de>
The `HashStable` and `ToStableHashKey` traits both have a type parameter
that is sometimes called `CTX` and sometimes called `HCX`. (In practice
this type parameter is always instantiated as `StableHashingContext`.)
Similarly, variables with these types are sometimes called `ctx` and
sometimes called `hcx`. This inconsistency has bugged me for some time.

The `HCX`/`hcx` form is more informative (the `H`/`h` indicates what
type of context it is) and it matches other cases like `tcx`, `dcx`,
`icx`.

Also, RFC 430 says that type parameters should have names that are
"concise UpperCamelCase, usually single uppercase letter: T". In this
case `H` feels insufficient, and `Hcx` feels better.

Therefore, this commit changes the code to use `Hcx`/`hcx` everywhere.
…gross35

Update libc to v0.2.183

Follow-up of rust-lang#150484.
This PR updates libc to include the latest patches to make rtems target (and probably others) compile again.
…e, r=nikic

add rustc option -Zpacked-stack

this enables `-Zpacked-stack` just as `-mpacked-stack` in clang and gcc. packed-stack is needed on s390x for kernel development.

For reference: rust-lang#151154 and rust-lang#150766

look at @uweigand s post for full explanation of what this does. Here a wrap-up:

rust-lang#150766 (comment)
> [...]
> packed-stack [...] modifies how the compiler-generated function prolog/epilog code makes use of the 160 byte register save area provided by a caller to the callee [...]  this variant is not actually incompatible with the ABI - packed-stack and regular functions can freely call each other without ABI issues.
> [...]
> combination of -mpacked-stack and -mbackchain [...]  the location in the stack frame where the backchain link ought to be stored is not available. [...] is not supported at all with the default ABI
> [...]
> However, in the special case of also using soft-float, our (implied) soft-float ABI provides a different location for the backchain that is compatible with -mpacked-stack, so that combination should be supported
> [...]
Use `Hcx`/`hcx` consistently for `StableHashingContext`.

The `HashStable` and `ToStableHashKey` traits both have a type parameter that is sometimes called `CTX` and sometimes called `HCX`. (In practice this type parameter is always instantiated as `StableHashingContext`.) Similarly, variables with these types are sometimes called `ctx` and sometimes called `hcx`. This inconsistency has bugged me for some time.

The `HCX`/`hcx` form is more informative (the `H`/`h` indicates what type of context it is) and it matches other cases like `tcx`, `dcx`, `icx`.

Also, RFC 430 says that type parameters should have names that are "concise UpperCamelCase, usually single uppercase letter: T". In this case `H` feels insufficient, and `Hcx` feels better.

Therefore, this commit changes the code to use `Hcx`/`hcx` everywhere.

r? @petrochenkov
…Simulacrum

./x run miri: default to edition 2021

Fixes rust-lang#154630
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Mar 31, 2026
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. O-unix Operating system: Unix-like 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 Mar 31, 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 Mar 31, 2026

📌 Commit c13822a has been approved by JonathanBrouwer

It is now in the queue for this repository.

@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

Trying commonly failed jobs
@bors try jobs=test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple,x86_64-mingw-1

@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 Mar 31, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Mar 31, 2026
Rollup of 4 pull requests


try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple
try-job: x86_64-mingw-1
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 31, 2026

☀️ Try build successful (CI)
Build commit: 5b25acd (5b25acd44b8733f21c130de4d0f13c658964af22, parent: e4fdb554ad2c0270473181438e338c42b5b30b0c)

@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 Mar 31, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 31, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 8m 13s
Pushing 48cc71e to main...

@rust-bors rust-bors bot merged commit 48cc71e into rust-lang:main Mar 31, 2026
13 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 31, 2026
@rust-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150752 Update libc to v0.2.183 4a2165ba8013b808b640db9b1b1f9c3cdd3ad6b4 (link)
#152432 add rustc option -Zpacked-stack 43bd7fe75b12eba64f3d125d76417cd07f4a64d2 (link)
#154634 Use Hcx/hcx consistently for StableHashingContext. 6889cf58dc8c49395440d7d62a13db0d0e79c720 (link)
#154635 ./x run miri: default to edition 2021 b27610733cc04809855f2397e1b28358eaa4e8e2 (link)

previous master: 0e95a0f4c6

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 0e95a0f (parent) -> 48cc71e (this PR)

Test differences

Show 23 test diffs

Stage 1

  • [assembly] tests/assembly-llvm/s390x-packedstack-toggle.rs#default-packedstack: [missing] -> pass (J1)
  • [assembly] tests/assembly-llvm/s390x-packedstack-toggle.rs#enable-packedstack: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#backchain_attr: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#backchain_cli: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#only_packedstack: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#with_softfloat: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#wrong_arch: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/packedstack.rs: [missing] -> pass (J4)

Stage 2

  • [ui] tests/ui/target-feature/packedstack-combinations.rs#backchain_attr: [missing] -> pass (J0)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#backchain_cli: [missing] -> pass (J0)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#only_packedstack: [missing] -> pass (J0)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#with_softfloat: [missing] -> pass (J0)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#wrong_arch: [missing] -> pass (J0)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#backchain_attr: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#backchain_cli: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#only_packedstack: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#with_softfloat: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [ui] tests/ui/target-feature/packedstack-combinations.rs#wrong_arch: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [assembly] tests/assembly-llvm/s390x-packedstack-toggle.rs#default-packedstack: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/s390x-packedstack-toggle.rs#enable-packedstack: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/packedstack.rs: [missing] -> pass (J3)

Additionally, 2 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 48cc71ee88cd0f11217eced958b9930970da998b --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: 3h 25m -> 2h 23m (-30.4%)
  2. dist-apple-various: 1h 54m -> 2h 14m (+17.1%)
  3. x86_64-gnu-llvm-21-3: 1h 45m -> 1h 57m (+11.6%)
  4. dist-aarch64-apple: 1h 59m -> 1h 45m (-11.4%)
  5. tidy: 2m 54s -> 2m 35s (-10.6%)
  6. dist-various-1: 1h 6m -> 1h 11m (+8.1%)
  7. dist-ohos-armv7: 1h 15m -> 1h 9m (-8.0%)
  8. dist-x86_64-msvc-alt: 2h 40m -> 2h 52m (+7.0%)
  9. dist-x86_64-llvm-mingw: 1h 47m -> 1h 53m (+6.3%)
  10. aarch64-msvc-1: 2h -> 2h 7m (+6.2%)
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 (48cc71e): 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.2% [-0.3%, -0.2%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.2% [-0.3%, -0.2%] 3

Max RSS (memory usage)

Results (primary 1.7%, 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)
1.7% [1.7%, 1.7%] 1
Regressions ❌
(secondary)
1.5% [0.8%, 2.1%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.7% [1.7%, 1.7%] 1

Cycles

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

Binary size

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

Bootstrap: 483.422s -> 482.373s (-0.22%)
Artifact size: 394.90 MiB -> 394.91 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. O-unix Operating system: Unix-like 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.

7 participants