Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Dec 4, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

reddevilmidzy and others added 26 commits December 2, 2025 11:13
updated `tests/ui/README.md`and `src/tools/tidy/src/issues.txt`
To fix passing the toolstate token to `publish_toolstate.sh`.
…r test steps

This is redundant and wasteful.
…mann

Recover on misspelled item keyword

the title says everything. first commit adds a test that shows how current `main` behaves on misspelled item keyword. second commit adds the recovery, which allows to emit many more errors.
Tidying up UI tests [6/N]

> [!NOTE]
> Intermediate commits are intended to help review, but will be squashed add comment commit prior to merge.

part of rust-lang#133895

removed directory  `tests/ui/trait-objects`,  `tests/ui/for`, `tests/ui/warnings`

`trait-objects` -> `traits/object`
`for` -> `for-loop-while` (except `for/issue-20605.rs` test. this relocated to `traits/dyn-iterator-deref-in-for-loop.rs`)
`warnings` -> `resolve`, `entry-point`

r? Kivooeo
…r=jdonszelmann

Move attribute safety checking to attribute parsing

This PR moves attribute safety checking to be done during attribute parsing. The `cfg` and `cfg_attr` attribute no longer need special-cased safety checking, yay!

This PR is a part 1 of 2, in the second part I'd like to define attribute safety in the attribute parsers rather than getting the information from BUILTIN_ATTRIBUTE_MAP, but to keep PRs reviewable lets do that separately.

Fixes rust-lang#148453 by reordering the diagnostics. The "cannot find attribute" diagnostic now appears first, but both diagnostics still appear.

r? `@jdonszelmann`
powf, powi: point out SNaN non-determinism

The non-determinism has two sources:
- LLVM reserves the right to treat signaling NaNs as-if they were quiet, so it may fold `powf(x, 0)` to `1` even if `x` might be a signaling NaN.
- Some libm `pow` implementations (e.g. the one in musl) don't implement the signaling NaN special-case. See https://rust.godbolt.org/z/chsbv5v4d.

Cc `@tgross35` `@Amanieu`
Use branch name instead of HEAD when unshallowing

Fixes a regression with the beta channel that was discovered in rust-lang#149572.

r? `@cuviper`
… r=ehuss

Apply the `bors` environment also to the `outcome` job

To fix passing the toolstate token to `publish_toolstate.sh`. Found in https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/TOOLSTATE_REPO_ACCESS_TOKEN/with/561580948.

r? ehuss
… r=Zalathar

Don't require a normal tool build of clippy/rustfmt when running their test steps

This is redundant and wasteful.

Noticed in rust-lang#147372 (comment).
…zelmann

Point to the item that is incorrectly annotated with `#[diagnostic::on_const]`

close rust-lang#149606

r? estebank
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool labels Dec 4, 2025
@rustbot rustbot 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-infra Relevant to the infrastructure 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 Dec 4, 2025
@matthiaskrgr
Copy link
Member Author

@bors try jobs=x86_64-msvc-1,i686-msvc-1,x86_64-mingw-1,test-various,armhf-gnu,aarch64-apple,x86_64-gnu-llvm-20-3

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Dec 4, 2025
Rollup of 9 pull requests

try-job: x86_64-msvc-1
try-job: i686-msvc-1
try-job: x86_64-mingw-1
try-job: test-various
try-job: armhf-gnu
try-job: aarch64-apple
try-job: x86_64-gnu-llvm-20-3
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Dec 4, 2025

📌 Commit 69f8a5c 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 Dec 4, 2025
@rust-bors
Copy link

rust-bors bot commented Dec 4, 2025

☀️ Try build successful (CI)
Build commit: 3294b61 (3294b6125ed26a133a7c98d37c2066c167465e19, parent: 5372fc9cb790c112ce707991b1fcc025cec8fdbe)

@bors
Copy link
Collaborator

bors commented Dec 4, 2025

⌛ Testing commit 69f8a5c with merge 3e2dbcd...

@bors
Copy link
Collaborator

bors commented Dec 5, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 3e2dbcd to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 5, 2025
@bors bors merged commit 3e2dbcd into rust-lang:main Dec 5, 2025
13 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Dec 5, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#147224 Emscripten: Turn wasm-eh on by default 13f0cab593a88602a356c40bf22ed122f3bda2f7 (link)
#149405 Recover on misspelled item keyword 86cebe57eedaca3876bbc9e85337dd354099b17c (link)
#149443 Tidying up UI tests [6/N] 35aa2e9d2a16f558fdb0dcf996d582c7980be993 (link)
#149524 Move attribute safety checking to attribute parsing 1aeb857cb8edc30e9fe99f78f0a7671a1aeb1143 (link)
#149593 powf, powi: point out SNaN non-determinism 87816111492cceb28aa926f09fec45db4e94b1e7 (link)
#149605 Use branch name instead of HEAD when unshallowing 662f086f1ee6cc7a8f5479a60f66aaa9901aa56c (link)
#149612 Apply the bors environment also to the outcome job 5d444b8696975f2723a8425d8a3d88764dd792d3 (link)
#149623 Don't require a normal tool build of clippy/rustfmt when ru… 3347e2c7a4cb32c89dd94c034348803ee149f8e9 (link)
#149627 Point to the item that is incorrectly annotated with `#[dia… 6bf62ce1e035ba88b7ef39a29a74a1dd5beec691 (link)

previous master: b33119ffdd

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

github-actions bot commented Dec 5, 2025

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 b33119f (parent) -> 3e2dbcd (this PR)

Test differences

Show 654 test diffs

Stage 1

  • [ui] tests/ui/attributes/unsafe/unsafe-nonexistent-attribute.rs: [missing] -> pass (J1)
  • [ui] tests/ui/entry-point/hello-world.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-c-in-str.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-else-err.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-else-let-else-err.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-loop-bogosity.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-loop-diagnostic-span.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-loop-refutable-pattern-error-message.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-loop-type-error.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/for-loop-unconstrained-element-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for-loop-while/iter-from-mac-call.rs: [missing] -> pass (J1)
  • [ui] tests/ui/for/for-c-in-str.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/for-else-err.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/for-else-let-else-err.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/for-expn.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/for-loop-bogosity.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/for-loop-refutable-pattern-error-message.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/for-loop-type-error.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/for-loop-unconstrained-element-type.rs: pass -> [missing] (J1)
  • [ui] tests/ui/for/issue-20605.rs#current: pass -> [missing] (J1)
  • [ui] tests/ui/for/issue-20605.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/for/iter_from_mac_call.rs: pass -> [missing] (J1)
  • [ui] tests/ui/parser/misspelled-keywords/recovery.rs: [missing] -> pass (J1)
  • [ui] tests/ui/resolve/no-explicit-path.rs: [missing] -> pass (J1)
  • [ui] tests/ui/trait-objects/trait-object-lifetime-conversion-47638.rs: pass -> [missing] (J1)
  • [ui] tests/ui/traits/dyn-iterator-deref-in-for-loop.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/traits/dyn-iterator-deref-in-for-loop.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/traits/object/trait-object-lifetime-conversion.rs: [missing] -> pass (J1)
  • [ui] tests/ui/warnings/hello-world.rs: pass -> [missing] (J1)
  • [ui] tests/ui/warnings/no-explicit-path-issue-122509.rs: pass -> [missing] (J1)

Stage 2

  • [ui] tests/ui/attributes/unsafe/unsafe-nonexistent-attribute.rs: [missing] -> pass (J0)
  • [ui] tests/ui/entry-point/hello-world.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-c-in-str.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-else-err.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-else-let-else-err.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-loop-bogosity.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-loop-diagnostic-span.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-loop-refutable-pattern-error-message.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-loop-type-error.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/for-loop-unconstrained-element-type.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for-loop-while/iter-from-mac-call.rs: [missing] -> pass (J0)
  • [ui] tests/ui/for/for-c-in-str.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/for-else-err.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/for-else-let-else-err.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/for-expn.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/for-loop-bogosity.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/for-loop-refutable-pattern-error-message.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/for-loop-type-error.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/for-loop-unconstrained-element-type.rs: pass -> [missing] (J0)
  • [ui] tests/ui/for/issue-20605.rs#current: pass -> [missing] (J0)
  • [ui] tests/ui/for/issue-20605.rs#next: pass -> [missing] (J0)
  • [ui] tests/ui/for/iter_from_mac_call.rs: pass -> [missing] (J0)
  • [ui] tests/ui/parser/misspelled-keywords/recovery.rs: [missing] -> pass (J0)
  • [ui] tests/ui/resolve/no-explicit-path.rs: [missing] -> pass (J0)
  • [ui] tests/ui/trait-objects/trait-object-lifetime-conversion-47638.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/dyn-iterator-deref-in-for-loop.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/traits/dyn-iterator-deref-in-for-loop.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/traits/object/trait-object-lifetime-conversion.rs: [missing] -> pass (J0)
  • [ui] tests/ui/warnings/hello-world.rs: pass -> [missing] (J0)
  • [ui] tests/ui/warnings/no-explicit-path-issue-122509.rs: pass -> [missing] (J0)

Additionally, 594 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 3e2dbcdd3a4fc1b5aabfcd0c401c093734e72df2 --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-x86_64-msvc: 12370.9s -> 6743.9s (-45.5%)
  2. dist-apple-various: 5060.2s -> 3323.5s (-34.3%)
  3. dist-x86_64-apple: 8328.7s -> 6115.8s (-26.6%)
  4. aarch64-apple: 9485.9s -> 11458.6s (+20.8%)
  5. x86_64-gnu-llvm-20: 2441.4s -> 2827.8s (+15.8%)
  6. tidy: 177.4s -> 151.3s (-14.7%)
  7. x86_64-gnu-gcc: 3020.2s -> 3457.8s (+14.5%)
  8. x86_64-gnu-llvm-20-1: 3165.9s -> 3597.1s (+13.6%)
  9. pr-check-1: 1694.3s -> 1916.4s (+13.1%)
  10. x86_64-gnu: 6204.1s -> 6955.4s (+12.1%)
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 (3e2dbcd): 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.

mean range count
Regressions ❌
(primary)
0.2% [0.1%, 0.3%] 30
Regressions ❌
(secondary)
0.2% [0.1%, 0.4%] 7
Improvements ✅
(primary)
-0.3% [-0.4%, -0.2%] 2
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 6
All ❌✅ (primary) 0.2% [-0.4%, 0.3%] 32

Max RSS (memory usage)

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

Cycles

Results (secondary 3.3%)

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)
3.3% [3.0%, 3.7%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%, secondary 0.0%)

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

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.0%] 6
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 4
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 6

Bootstrap: 470.287s -> 470.045s (-0.05%)
Artifact size: 386.77 MiB -> 386.80 MiB (0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Dec 5, 2025
@matthiaskrgr
Copy link
Member Author

@rust-timer build 1aeb857

@rust-timer
Copy link
Collaborator

Queued 1aeb857 with parent b33119f, future comparison URL.
There is currently 1 preceding artifact in the queue.
It will probably take at least ~1.8 hours until the benchmark run finishes.

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. 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-infra Relevant to the infrastructure 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.