Skip to content

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Oct 20, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

fmease and others added 15 commits October 16, 2025 19:53
… was enabled

The internal feature `more_maybe_bounds` doesn't influence sized elaboration in
HIR ty lowering and therefore doesn't get to dictate where `?Sized` is allowed.
The primary purpose of `EarlyProps` is to discover revisions, so that we can
create a separate test structure for each revision.

Revisions can (and do) have different auxiliaries, and up-to-date checking is
already done per-revision, so it makes more sense to perform up-to-date checks
based on the current revisions's auxiliaries only.
Further tighten up relaxed bounds

Follow-up to rust-lang#142693, rust-lang#135331 and rust-lang#135841.
Fixes rust-lang#143122.

* Reject relaxed bounds `?Trait` in the bounds of trait aliases.
  Just like `trait Trait {}` doesn't mean `trait Trait: Sized {}` and we therefore reject `trait Trait: ?Sized {}`, `trait Trait =;` (sic!) doesn't mean `trait Trait = Sized;` (never did!) and as a logical consequence `trait Trait = ?Sized;` is meaningless and should be forbidden.
* Don't permit `?Sized` in more places (e.g., supertrait bounds, trait object types) if feature `more_maybe_bounds` is enabled.
  That internal feature is only meant to allow the user to define & use *new* default traits (that have fewer rules to follow for now to ease experimentation).
* Unconditionally check that the `Trait` in `?Trait` is a default trait.
  Previously, we would only perform this check in selected places which was very brittle and led to bugs slipping through.
* Slightly improve diagnostics.
…r=jieyouxu

enzyme/autodiff is compatible with download-ci=true

To my surprise autodiff just works out of the box with download-ci=true. Thanks to all the bootstrap people who over the past helped me to link properly against the sysroot LLVM, which seems to pay off here.
That also helps with enabling Rust in Enzyme CI, since CCache for some reason doesn't seem to cache LLVM correctly on their runners.

I verified that this works with
` ./configure --release-channel=nightly --enable-llvm-enzyme --enable-option-checking --disable-docs --enable-llvm-assertions --set llvm.download-ci-llvm=true`. However, shouldn't download-ci-llvm already be the default? Why do I still have to manually set it with this pr?

I tested it afterwards with
`./x.py test --stage 1 tests/codegen-llvm/autodiff`

r? bootstrap

closes rust-lang#147535
compiletest: Move `AuxProps` out of `EarlyProps`

The primary purpose of `EarlyProps` is to discover revisions, so that we can create a separate test structure for each revision.

Revisions can (and do) have different auxiliaries, and up-to-date checking is already done per-revision, so it makes more sense to perform up-to-date checks based on the current revisions's auxiliaries only.

r? jieyouxu
compiletest: Store the selected edition in `TestProps`

While working on a larger overhaul of directive processing, I ran into difficulty with the `has_edition` local variable.

Storing the selected edition in `TestProps` should make it easier to extract parts of directive processing into independent handler functions, because the `//@ edition` handler won't need access to additional mutable state outside of `TestProps`.

We still automatically add the edition to `compile_flags`, because there is too much existing compiletest code relying on that behaviour.

r? jieyouxu
@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 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Oct 20, 2025
@Zalathar
Copy link
Contributor Author

Rollup of everything.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 20, 2025

📌 Commit 58345bb has been approved by Zalathar

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

bors commented Oct 20, 2025

⌛ Testing commit 58345bb with merge bd4a800...

@bors
Copy link
Collaborator

bors commented Oct 20, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing bd4a800 to master...

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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#147734 Further tighten up relaxed bounds b75feaae0d95f9cd8a2f858f1844421173a4a793 (link)
#147888 enzyme/autodiff is compatible with download-ci=true c2cbe9091656281c975fb7583322cd0ed6e6003e (link)
#147898 compiletest: Move AuxProps out of EarlyProps 097a71250defb2a7fd4576f6b57be2ec202fe0d4 (link)
#147903 compiletest: Store the selected edition in TestProps 3463655742e1637bd8ae3481190f86ca7200e36e (link)

previous master: fd847d4d5d

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 fd847d4 (parent) -> bd4a800 (this PR)

Test differences

Show 20 test diffs

Stage 0

  • directives::tests::aux_build: pass -> [missing] (J2)
  • directives::tests::edition_order: [missing] -> pass (J2)

Stage 1

  • [ui] tests/ui/sized-hierarchy/trait-aliases.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/alias/effectively-empty-trait-object-type.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/alias/empty.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/alias/maybe-bound.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/alias/only-maybe-bound.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/alias/relaxed-bounds.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/wf-object/only-maybe-bound.rs: pass -> [missing] (J0)

Stage 2

  • [ui] tests/ui/sized-hierarchy/trait-aliases.rs: pass -> [missing] (J1)
  • [ui] tests/ui/traits/alias/effectively-empty-trait-object-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/alias/empty.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/alias/maybe-bound.rs: pass -> [missing] (J1)
  • [ui] tests/ui/traits/alias/only-maybe-bound.rs: pass -> [missing] (J1)
  • [ui] tests/ui/traits/alias/relaxed-bounds.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/wf-object/only-maybe-bound.rs: pass -> [missing] (J1)

Additionally, 4 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 bd4a8004c2f3b73795cb4c03bf8e7634e4d89677 --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: 7401.4s -> 10779.3s (45.6%)
  2. aarch64-gnu-llvm-20-2: 2199.5s -> 2578.5s (17.2%)
  3. dist-x86_64-apple: 6078.7s -> 7121.7s (17.2%)
  4. pr-check-1: 1468.2s -> 1698.6s (15.7%)
  5. aarch64-gnu-debug: 3620.2s -> 4179.6s (15.4%)
  6. dist-aarch64-msvc: 6329.2s -> 5396.6s (-14.7%)
  7. x86_64-gnu-gcc: 3027.1s -> 3441.1s (13.7%)
  8. x86_64-gnu-tools: 3240.0s -> 3660.3s (13.0%)
  9. dist-apple-various: 3843.8s -> 3348.8s (-12.9%)
  10. armhf-gnu: 4916.3s -> 5488.9s (11.6%)
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 (bd4a800): comparison URL.

Overall result: ❌ regressions - 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.3% [0.3%, 0.3%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

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

Cycles

Results (secondary -1.7%)

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

Binary size

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

Bootstrap: 473.5s -> 474.484s (0.21%)
Artifact size: 388.65 MiB -> 388.66 MiB (0.00%)

@Zalathar Zalathar deleted the rollup-2wik61l branch October 20, 2025 21:53
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. 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-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.

6 participants