Skip to content

Conversation

@jhpratt
Copy link
Member

@jhpratt jhpratt commented Oct 25, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Jesus Checa Hidalgo and others added 11 commits October 16, 2025 14:05
The `needs-asm-support` directive checks whether the host architecture
supports inline assembly, not the target architecture. For tests that
explicitly specify a target via `--target` in their compile-flags, this
directive is incorrect and unnecessary.

These tests are cross-compiling to specific targets (like x86_64, arm,
aarch64, riscv, etc.) that are already known to have stable asm support.
The directive was causing these tests to be incorrectly skipped on hosts
that don't support asm, even though the target does.

Tests with explicit targets should rely on `needs-llvm-components` to
ensure the appropriate backend is available, rather than checking host
asm support.

Improve documentation about `needs-asm-support` directive.
These same checks feed into `doctest.can_be_merged`,
making them redundant.
When working on the stabilization report,
I found it annoying to determine what cases were covered because areas
of the frontmatter feature were either not in the file name or in
inconsistent locations.

This moves the area of frontmatter to the start of the file name and the
moves to more specific the later in the file name so coverage is easier
to see.
…explicit, r=cuviper

Remove needs-asm-support directive in tests with explicit targets

The `needs-asm-support` directive checks whether the host architecture supports inline assembly, not the target architecture. For tests that explicitly specify a target via `--target` in their compile-flags, this directive is incorrect and unnecessary.

These tests are cross-compiling to specific targets (like x86_64, arm, aarch64, riscv, etc.) that are already known to have stable asm support. The directive was causing these tests to be incorrectly skipped on hosts that don't support asm, even though the target does.

Tests with explicit targets should rely on `needs-llvm-components` to ensure the appropriate backend is available, rather than checking host asm support.
refactor(rustdoc): Remove redundant langstr checks

These same checks feed into `doctest.can_be_merged`, making them redundant.
compiletest: Add concrete examples for some config/test path fields

Seeing a specific example path can be much more enlightening than trying to figure out what the prose is gesturing towards.

Also, in some cases the existing comments were incorrect or misleading, as demonstrated by the example paths.

The example paths were determined by dumping them directly out of the config with `dbg!`, and then lightly anonymizing them for example purposes.

---

No functional changes.

r? jieyouxu
…=joboet

Fix compiling `CondVar::wait_timeout` on 32-bit Apple platforms

Fixes rust-lang#147776. I feel like there's a cleaner way to write this, but that probably requires further refactoring.

The build can be tested with `./x build --target arm64_32-apple-watchos` (or with any other 32-bit Apple target).

Tested it works at runtime on an Intel Macbook Pro with macOS 10.12.6, in x86 emulation mode with something similar to `./x test library/std --target x86_64-apple-darwin,i686-apple-darwin`, as well as with a custom test with a timeout of `Duration::from_secs((u32::MAX as u64) + 1)` (which the naive fix would have treated as a duration of 1 second).

r? libs
CC ``@joboet``
test(frontmatter): Rename tests to make coverage more obvious

When working on the stabilization report (rust-lang#148051), I found it annoying to determine what cases were covered because areas of the frontmatter feature were either not in the file name or in inconsistent locations.

This moves the area of frontmatter to the start of the file name and the moves to more specific the later in the file name so coverage is easier to see.

Tracking issue: rust-lang#136889
@rustbot rustbot added A-compiletest Area: The compiletest test runner 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Oct 25, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Oct 25, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 25, 2025

📌 Commit 3e3e08c has been approved by jhpratt

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 Oct 25, 2025
@bors
Copy link
Collaborator

bors commented Oct 25, 2025

⌛ Testing commit 3e3e08c with merge 04ff05c...

@bors
Copy link
Collaborator

bors commented Oct 25, 2025

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 04ff05c to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 25, 2025
@bors bors merged commit 04ff05c into rust-lang:master Oct 25, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Oct 25, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#147406 Remove needs-asm-support directive in tests with explicit t… b03710dff08c99e68e8b85bb9325010d64510813 (link)
#148056 refactor(rustdoc): Remove redundant langstr checks 8ee8631a926a13dee2e41d38949cdd72c3cc3449 (link)
#148065 compiletest: Add concrete examples for some config/test pat… 375b52fb6893a7ddb18bdf80af7751b1db91ec59 (link)
#148072 Fix compiling CondVar::wait_timeout on 32-bit Apple platf… 12973a9297fb070118b5de8e4fb7cdc09a98f2ee (link)
#148073 test(frontmatter): Rename tests to make coverage more obvio… 68e847a77a0b3d60fcd0cb81f0e1cb13dec33a32 (link)

previous master: e4407c026a

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
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 e4407c0 (parent) -> 04ff05c (this PR)

Test differences

Show 125 test diffs

Stage 1

  • [ui] tests/ui/frontmatter/content-contains-whitespace.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/content-non-lexible-tokens.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/dot-in-infostring-leading.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/dot-in-infostring-non-leading.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/escape-hyphens-leading.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/escape-hyphens-nonleading-1.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/escape-hyphens-nonleading-2.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/escape-hyphens-nonleading-3.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/escape.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/extra-after-end.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/fence-indented.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-mismatch-1.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-unclosed-1.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-unclosed-2.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-unclosed-3.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-unclosed-4.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-unclosed-5.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-whitespace-trailing-1.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/fence-whitespace-trailing-2.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/frontmatter-after-tokens.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-contains-whitespace.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-inner-hyphens-1.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-inner-hyphens-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-non-lexible-tokens.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-whitespace-1.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-whitespace-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-whitespace-3.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/frontmatter-whitespace-4.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/hyphen-in-infostring-leading.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/include-in-expr-ctxt.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/include-in-item-ctxt.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/infostring-comma.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/infostring-dot-leading.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/infostring-fail.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/infostring-hyphen-leading.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/infostring-hyphen-nonleading.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/infostring-space.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/location-after-shebang.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/location-after-tokens.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/location-include-in-expr-ctxt.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/location-include-in-item-ctxt.rs: [missing] -> pass (J1)
  • [ui] tests/ui/frontmatter/mismatch-1.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/mismatch-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/multifrontmatter-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/proc-macro-observer.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/shebang.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/unclosed-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/unclosed-3.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/unclosed-4.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/unclosed-5.rs: pass -> [missing] (J1)
  • [ui] tests/ui/frontmatter/unclosed-6.rs: pass -> [missing] (J1)

Stage 2

  • [ui] tests/ui/frontmatter/content-contains-whitespace.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/content-non-lexible-tokens.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/dot-in-infostring-leading.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/escape-hyphens-nonleading-1.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/escape-hyphens-nonleading-2.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/escape-hyphens-nonleading-3.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/escape.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/extra-after-end.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/fence-close-extra-after.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-indented.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-mismatch-1.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-mismatch-2.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-unclosed-1.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-unclosed-2.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-unclosed-3.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-unclosed-4.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-unclosed-5.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-whitespace-trailing-1.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/fence-whitespace-trailing-2.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/frontmatter-after-tokens.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/frontmatter-contains-whitespace.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/frontmatter-inner-hyphens-2.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/frontmatter-non-lexible-tokens.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/frontmatter-whitespace-1.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/frontmatter-whitespace-3.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/frontmatter-whitespace-4.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/hyphen-in-infostring-leading.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/include-in-expr-ctxt.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/include-in-item-ctxt.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/infostring-dot-leading.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/infostring-dot-nonleading.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/infostring-fail.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/infostring-space.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/location-after-shebang.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/location-after-tokens.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/location-include-in-expr-ctxt.rs: [missing] -> pass (J0)
  • [ui] tests/ui/frontmatter/mismatch-2.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/multifrontmatter-2.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/shebang.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/unclosed-1.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/unclosed-2.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/unclosed-3.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/unclosed-4.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/unclosed-6.rs: pass -> [missing] (J0)
  • [ui] tests/ui/frontmatter/location-proc-macro-observer.rs: [missing] -> pass (J2)
  • [ui] tests/ui/frontmatter/proc-macro-observer.rs: pass -> [missing] (J2)
  • [ui] tests/ui/frontmatter/location-proc-macro-observer.rs: [missing] -> ignore (gcc backend is marked as ignore) (J3)
  • [ui] tests/ui/frontmatter/proc-macro-observer.rs: ignore (gcc backend is marked as ignore) -> [missing] (J3)
  • [run-make] tests/run-make/compressed-debuginfo-zstd: ignore (ignored if LLVM wasn't build with zstd for ELF section compression or LLVM is not the default codegen backend) -> pass (J4)

(and 23 additional test diffs)

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 04ff05c9c0cfbca33115c5f1b8bb20a66a54b799 --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. x86_64-rust-for-linux: 3815.4s -> 2485.5s (-34.9%)
  2. x86_64-gnu-gcc: 4589.1s -> 3030.1s (-34.0%)
  3. pr-check-1: 2029.0s -> 1435.8s (-29.2%)
  4. x86_64-gnu-tools: 4465.1s -> 3279.5s (-26.6%)
  5. x86_64-gnu-miri: 5730.1s -> 4356.4s (-24.0%)
  6. arm-android: 7676.1s -> 5864.6s (-23.6%)
  7. armhf-gnu: 6409.5s -> 4935.1s (-23.0%)
  8. x86_64-gnu-distcheck: 8515.9s -> 6761.0s (-20.6%)
  9. x86_64-gnu: 8541.1s -> 6804.0s (-20.3%)
  10. x86_64-gnu-aux: 7938.5s -> 6410.8s (-19.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
Collaborator

Finished benchmarking commit (04ff05c): 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)

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

Cycles

Results (secondary 2.9%)

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)
2.9% [2.3%, 3.3%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 474.035s -> 473.373s (-0.14%)
Artifact size: 390.47 MiB -> 390.48 MiB (0.00%)

@bors bors mentioned this pull request Oct 25, 2025
10 tasks
@jhpratt jhpratt deleted the rollup-n260hcy branch October 25, 2025 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-compiletest Area: The compiletest test runner 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. T-rustdoc Relevant to the rustdoc 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