Skip to content

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Sep 16, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

RalfJung and others added 25 commits September 10, 2025 15:59
and double-check that we match it in codegen
…with #[unstable_feature_bound(unsized_const_params)]
It accidentally broke with a48c8e3. The intention of that commit was
to keep existing behavior if `--exact` is not used, but it had a bug.
This commit fixes that bug.
the main thing this does is eliminate the "Fresh ..." output when
`--verbose` is only passed once.
Migrate `UnsizedConstParamTy`  to unstable impl of `ConstParamTy_`

Now that we have ``#[unstable_feature_bound]``, we can remove ``UnsizedConstParamTy`` that was meant to be an unstable impl of stable type and ``ConstParamTy_`` trait.

r? `@BoxyUwU`
…szelmann

Split `FnCtxt::report_args_error` into subfunctions
interpret: fix overlapping aggregate initialization

This fixes the problem pointed out by ````@saethlin```` in rust-lang#146383 (comment).

Also clarify when exactly current de-facto MIR semantics allow overlap of the LHS and RHS in an assignment.
llvm-wrapper: other cleanup

Cleanup few things around llvm-wrapper:

First commit removes unused macro, added back in rust-lang#31709 it was used in `LLVMRustHasFeature`; second removes unused function, third one removes `jsbackend` llvm component - this is looks like remnants of some removed backend?
compiletest: Enable new-output-capture by default

The new output-capture implementation was added in rust-lang#146119, but was disabled by default and required opt-in.

Since then, I haven't encountered any problems in my own testing/usage, and I haven't heard any problem reports from other contributors who might have opted in.

It's unlikely that more opt-in testing will help, so the next step is to enable new-output-capture by default and see if anyone complains. (Hopefully nobody!)

If needed, the new default can be overridden (for now) by setting environment variable `COMPILETEST_NEW_OUTPUT_CAPTURE=off`. Please file an issue (or let me know) if anyone finds a reason to do this.

r? jieyouxu
replace some `#[const_trait]` with `const trait`
…lacrum

compiletest: Make `./x test --test-args ...` work again

It accidentally broke with  rust-lang#146501. The intention of that PR was to keep existing behavior if `--exact` is not used, but it had a bug. This PR fixes that bug.
…obzol

improve internal bootstrap docs

Mainly focused on making it easier to figure out how tools get built without having to read the `bootstrap_tool!` macro, but also added some subdirs of `build/` to the readme.
…e-cargo, r=Kobzol

bootstrap: lower verbosity of cargo to one less than bootstrap's

the main thing this does is eliminate the "Fresh ..." output when `--verbose` is only passed once.

r? `@Kobzol`
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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) labels Sep 16, 2025
@rustbot rustbot added the rollup A PR which is a rollup label Sep 16, 2025
@Zalathar
Copy link
Contributor Author

Rollup of everything not in #146610.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Sep 16, 2025

📌 Commit f0e8c2f 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 Sep 16, 2025
@bors
Copy link
Collaborator

bors commented Sep 16, 2025

⌛ Testing commit f0e8c2f with merge ffdf3aa...

bors added a commit that referenced this pull request Sep 16, 2025
Rollup of 9 pull requests

Successful merges:

 - #145095 (Migrate `UnsizedConstParamTy`  to unstable impl of `ConstParamTy_`)
 - #145960 (Split `FnCtxt::report_args_error` into subfunctions)
 - #146402 (interpret: fix overlapping aggregate initialization)
 - #146466 (llvm-wrapper: other cleanup)
 - #146574 (compiletest: Enable new-output-capture by default)
 - #146599 (replace some `#[const_trait]` with `const trait`)
 - #146601 (compiletest: Make `./x test --test-args ...` work again)
 - #146608 (improve internal bootstrap docs)
 - #146609 (bootstrap: lower verbosity of cargo to one less than bootstrap's)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Sep 16, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 16, 2025
@Zalathar
Copy link
Contributor Author

@bors retry (runner flaked out)

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

bors commented Sep 16, 2025

⌛ Testing commit f0e8c2f with merge 8a1b399...

@bors
Copy link
Collaborator

bors commented Sep 16, 2025

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

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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#145095 Migrate UnsizedConstParamTy to unstable impl of `ConstPa… 0f06d344195889d49d8f6285f5a53b31d196d23a (link)
#145960 Split FnCtxt::report_args_error into subfunctions c50c6e31892fdc37b14d19f914f7b86b4c03f033 (link)
#146402 interpret: fix overlapping aggregate initialization 01e19fdb3f511d794e084de63e8b77b1b3b7e3eb (link)
#146466 llvm-wrapper: other cleanup 0b4a3a1f5c73d8587685f3332a05ffeeb5b6747c (link)
#146574 compiletest: Enable new-output-capture by default db0aadfb1a001e83d1dd678ab6237fc33051ee3b (link)
#146599 replace some #[const_trait] with const trait 9efd460e52f3cdb103d3551586fac4eb62b8a9ad (link)
#146601 compiletest: Make ./x test --test-args ... work again 6d0c584f3a22d3bf14c6fcfe31532be5564d1385 (link)
#146608 improve internal bootstrap docs 8d4cf2dca7d0b6d6daf2169b3f99aff61b03528e (link)
#146609 bootstrap: lower verbosity of cargo to one less than bootst… d9beee4d0c7cd04fd8010edea5815521d23b9a87 (link)

previous master: 9d82de19df

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 9d82de1 (parent) -> 8a1b399 (this PR)

Test differences

Show 266 test diffs

Stage 1

  • [ui] tests/ui/const-generics/adt_const_params/unsized_field-2.rs: pass -> [missing] (J1)

Stage 2

  • [ui] tests/ui/const-generics/adt_const_params/unsized_field-2.rs: pass -> [missing] (J0)
  • [ui] tests/ui/precondition-checks/copy-nonoverlapping.rs#misaligned_src: pass -> [missing] (J2)
  • [ui] tests/ui/precondition-checks/copy-nonoverlapping.rs#null_src: pass -> [missing] (J2)
  • [ui] tests/ui/precondition-checks/copy.rs#misaligned_src: pass -> [missing] (J2)
  • [ui] tests/ui/precondition-checks/copy.rs#null_src: pass -> [missing] (J2)
  • [ui] tests/ui/precondition-checks/swap-nonoverlapping.rs#misaligned_src: pass -> [missing] (J2)
  • [ui] tests/ui/precondition-checks/swap-nonoverlapping.rs#null_src: pass -> [missing] (J2)

Additionally, 258 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 8a1b39995e5b630c5872f5de5079f1f569bd5ac2 --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: 6440.6s -> 4575.9s (-29.0%)
  2. dist-aarch64-apple: 7653.2s -> 5966.0s (-22.0%)
  3. pr-check-1: 1729.1s -> 1398.4s (-19.1%)
  4. x86_64-gnu-llvm-19-1: 3798.1s -> 3274.0s (-13.8%)
  5. aarch64-gnu-llvm-19-2: 2510.1s -> 2212.2s (-11.9%)
  6. dist-apple-various: 4207.8s -> 3766.4s (-10.5%)
  7. x86_64-rust-for-linux: 2862.5s -> 2575.4s (-10.0%)
  8. arm-android: 6221.1s -> 5612.2s (-9.8%)
  9. i686-gnu-2: 5896.2s -> 5343.1s (-9.4%)
  10. i686-gnu-nopt-1: 8037.3s -> 7285.8s (-9.4%)
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 (8a1b399): 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.2%, 0.2%] 2
Regressions ❌
(secondary)
3.7% [3.0%, 4.2%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.3%, -0.0%] 6
All ❌✅ (primary) 0.2% [0.2%, 0.2%] 2

Max RSS (memory usage)

Results (primary -2.3%, secondary -1.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)
0.8% [0.8%, 0.8%] 1
Improvements ✅
(primary)
-2.3% [-2.5%, -2.1%] 2
Improvements ✅
(secondary)
-2.6% [-3.5%, -0.9%] 4
All ❌✅ (primary) -2.3% [-2.5%, -2.1%] 2

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

Binary size

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

Bootstrap: 475.305s -> 473.032s (-0.48%)
Artifact size: 390.12 MiB -> 390.60 MiB (0.12%)

@Zalathar
Copy link
Contributor Author

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (01e19fd): comparison URL.

Overall result: ❌ regressions - please read the text below

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)
3.2% [3.0%, 3.4%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.2%)

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

Cycles

Results (primary 3.0%)

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

mean range count
Regressions ❌
(primary)
3.0% [3.0%, 3.0%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 3.0% [3.0%, 3.0%] 1

Binary size

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

Bootstrap: 475.305s -> 473.218s (-0.44%)
Artifact size: 390.12 MiB -> 390.60 MiB (0.12%)

@Kobzol
Copy link
Member

Kobzol commented Sep 23, 2025

Thanks for the perf. run!

The regression in compile-time function evaluation was caused by #146402, which is a fix. Marking as triaged.

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Sep 23, 2025
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-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. 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.