Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Sep 20, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

madsmtm and others added 14 commits September 19, 2025 10:52
This helps us avoid the hardcoded lists elsewhere.
Fixes building std for any platform with an unsupported thread
abstraction. This includes {aarch64,armv7,x86_64}-unknown-trusty and
riscv32im-risc0-zkvm-elf, which explicitly include the unsupported
module, and platforms with no PAL.

Bug fix for PR 145177 (std: move thread into sys).
The macro is now builtin.
…oratrieb

generate list of all variants with `target_spec_enum`

This helps us avoid the hardcoded lists elsewhere.

r? ``@Noratrieb``
Fix and provide instructions for running test suite on Apple simulators

The following now works:

```sh
./x test --host='' --target aarch64-apple-ios-sim --skip tests/debuginfo
./x test --host='' --target aarch64-apple-tvos-sim --skip tests/debuginfo
./x test --host='' --target aarch64-apple-watchos-sim --skip tests/debuginfo
./x test --host='' --target aarch64-apple-visionos-sim --skip tests/debuginfo
```

I have documented the setup I used [in the `rustc-dev-guide`](https://rustc-dev-guide.rust-lang.org/tests/running.html#testing-on-emulators), it's fairly standard use of `remote-test-server` (with a small fix to library load paths which I've made in the first commit).

I first tried the somewhat simpler `target.aarch64-apple-ios-sim.runner = "xcrun simctl spawn $UDID"`, but that doesn't work as required libraries etc. also need to be copied to the device.

The debuginfo tests fail, I think because the debug info in `.dSYM` isn't available. I am yet unsure exactly how to fix this, either we need to copy that directory to the target as well, or we need to configure `lldb` somehow to read it from the host.

I decided to not add this to our CI, since I suspect we wouldn't gain much from it? Running on the simulator still uses the host Darwin kernel, it's basically just configured to run in another mode with more restricted permissions and different system libraries.

r? jieyouxu
CC ``@simlay,`` you're a lot more familiar with `xcrun simctl` than I.
…jieyouxu

Allow running `x <cmd> <path>` from a different directory

Fixes: rust-lang#146772

r? ``@jieyouxu``
…=joboet

Fix unsupported `std::sys::thread` after move

Fixes building std for any platform with an unsupported thread abstraction. This includes {aarch64,armv7,x86_64}-unknown-trusty and riscv32im-risc0-zkvm-elf, which explicitly include the unsupported module, and platforms with no PAL.

Bug fix for rust-lang#145177 (std: move thread into sys).

Also fix the `std` build for xtensa, which I incidentally found while looking for an unsupported platform.

r? ``@joboet``
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc 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. rollup A PR which is a rollup labels Sep 20, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Sep 20, 2025

📌 Commit 48c1249 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors 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 Sep 20, 2025
@bors
Copy link
Collaborator

bors commented Sep 20, 2025

⌛ Testing commit 48c1249 with merge dd7fda5...

@bors
Copy link
Collaborator

bors commented Sep 20, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing dd7fda5 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 20, 2025
@bors bors merged commit dd7fda5 into rust-lang:master Sep 20, 2025
11 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Sep 20, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#144592 generate list of all variants with target_spec_enum ef16611fafc42273683f30312e71cee2fc3daf14 (link)
#146762 Fix and provide instructions for running test suite on Appl… 08acc6565e4ae86bbd1b6372dba71aeee20f0d47 (link)
#146770 fixes for numerous clippy warnings 6a860ea3851aea68f135b2291744201c29261e73 (link)
#146774 Allow running x <cmd> <path> from a different directory a8d174264b1585dcdae61468101f691d7f020b8b (link)
#146800 Fix unsupported std::sys::thread after move e7abce316e73c2c1df676bb2a842fe7dda9399d3 (link)

previous master: 9f2ef0f14d

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

Copy link
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 9f2ef0f (parent) -> dd7fda5 (this PR)

Test differences

Show 276 test diffs

Stage 2

  • [ui] tests/ui/backtrace/apple-no-dsymutil.rs: ignore (only executed when the target vendor is Apple) -> ignore (ignored when running tests remotely (needs the compiler-produced .o file to be copied to the device)) (J0)
  • [ui] tests/ui/compiletest-self-test/test-aux-bin.rs: ignore (ignored when cross-compiling (because aux-bin does not yet support it)) -> ignore (ignored when running tests remotely (because aux-bin does not yet support it)) (J0)
  • [ui] tests/ui/runtime/on-broken-pipe/child-processes.rs#default: ignore (ignored when cross-compiling (because aux-bin does not yet support it)) -> ignore (ignored when running tests remotely (because aux-bin does not yet support it)) (J0)
  • [ui] tests/ui/runtime/on-broken-pipe/child-processes.rs#error: ignore (ignored when cross-compiling (because aux-bin does not yet support it)) -> ignore (ignored when running tests remotely (because aux-bin does not yet support it)) (J0)
  • [ui] tests/ui/runtime/on-broken-pipe/child-processes.rs#inherit: ignore (ignored when cross-compiling (because aux-bin does not yet support it)) -> ignore (ignored when running tests remotely (because aux-bin does not yet support it)) (J0)
  • [ui] tests/ui/runtime/on-broken-pipe/child-processes.rs#kill: ignore (ignored when cross-compiling (because aux-bin does not yet support it)) -> ignore (ignored when running tests remotely (because aux-bin does not yet support it)) (J0)
  • [ui] tests/ui/runtime/on-broken-pipe/inherit.rs: ignore (ignored when cross-compiling (because aux-bin does not yet support it)) -> ignore (ignored when running tests remotely (because aux-bin does not yet support it)) (J0)
  • [ui] tests/ui/process/env-funky-keys.rs: ignore (ignored when the operating system is android) -> ignore (ignored when the operating system is android (segfaults)) (J1)

Additionally, 268 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 dd7fda570040e8a736f7d8bc28ddd1b444aabc82 --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-loongarch64-musl: 5262.3s -> 5932.3s (12.7%)
  2. dist-x86_64-apple: 7743.2s -> 6782.3s (-12.4%)
  3. dist-apple-various: 3575.9s -> 3979.3s (11.3%)
  4. dist-various-1: 3748.6s -> 4091.0s (9.1%)
  5. dist-x86_64-windows-gnullvm: 5226.9s -> 4776.3s (-8.6%)
  6. dist-x86_64-illumos: 6463.7s -> 6031.4s (-6.7%)
  7. aarch64-msvc-1: 6463.6s -> 6874.1s (6.4%)
  8. x86_64-gnu-tools: 3468.5s -> 3270.0s (-5.7%)
  9. dist-x86_64-mingw: 9041.8s -> 8554.5s (-5.4%)
  10. dist-ohos-x86_64: 4348.2s -> 4137.2s (-4.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
Collaborator

Finished benchmarking commit (dd7fda5): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (primary 2.4%, 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)
2.4% [2.2%, 2.8%] 4
Regressions ❌
(secondary)
2.4% [2.2%, 2.9%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.9% [-1.9%, -1.9%] 1
All ❌✅ (primary) 2.4% [2.2%, 2.8%] 4

Cycles

Results (primary 2.0%, secondary 1.6%)

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

mean range count
Regressions ❌
(primary)
2.0% [2.0%, 2.0%] 1
Regressions ❌
(secondary)
2.8% [2.5%, 3.0%] 7
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.6% [-2.7%, -2.5%] 2
All ❌✅ (primary) 2.0% [2.0%, 2.0%] 1

Binary size

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

Bootstrap: 471.07s -> 472.936s (0.40%)
Artifact size: 389.99 MiB -> 389.95 MiB (-0.01%)

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. A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.

9 participants