Skip to content

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Oct 1, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

lcnr and others added 29 commits September 23, 2025 08:02
This isn't actually used for anything, and its presence complicates the
migration to `DirectiveLine`.
Previously in the `//`-compiletest-directive times, this was implemented
as a special `no-*` directive parsing. In the migration from `//` ->
`//@`, the `// no-remap-src-base` directive was lost, most likely
because it had no effect -- the default is not remapping `src-base`.

So remove occurrences of `no-remap-src-base`, as these are not valid
directives.
…elmann

add regression test

closes rust-lang#128887

the errors in that issue are due to two separate issues:
- MIR inlining causing the trait solver to hit the recursion limit (partially fixed in rust-lang#129714)
- using subtyping in method selection for paths (fixed in rust-lang#129073)

We moved any remaining issues due to MIR inlining into rust-lang#131960, but keeping rust-lang#128887 open as well seems unhelpful and confusing.
simplify setup_constraining_predicates, and note it is potentially cubic
compiletest: Pass around `DirectiveLine` instead of bare strings

This is an incremental step towards being able to clean up and centralize compiletest directive parsing.

My original plan was to add features to `DirectiveLine`, and then gradually migrate parsing code to use those features. However, that turned out to be impractical, because of how the existing directive parsers call each other. So instead this PR focuses on getting them to all take `DirectiveLine` instead of bare strings, to enable incremental work in the future.

Because this is part of an ongoing cleanup, I've prioritised clean diffs over nice code, because much of this code is going to be modified again when `DirectiveLine` is more capable.

r? jieyouxu
… r=Zalathar,jieyouxu

Remove usage of `compiletest-use-stage0-libtest` from CI

It shouldn't be needed anymore after rust-lang#146929.

r? `@Zalathar`
…imizations-2, r=GuillaumeGomez

Replace `rustc_span::Span` with a stripped down version for librustdoc's highlighter

While profiling rustdoc's syntax highlighter, I noticed a lot of time being spent in the `Span` interner, due to the highlighter creating a lot of (new) spans.
Since the only data from the `Span` that we use is the `hi` and `lo` byte positions - I replaced the regular `Span` with a simple one with two fields, and in my benchmarks it seemed to make a big dent in the highlighter's perf, so thought I would see what the perf runner says.
…tx, r=lcnr

remove outdated comment in (inner) `InferCtxt`

This comment seems to have stopped being relevant around 3 years ago after rust-lang@9f95c60. A map? what map? :P

r? `@lcnr`
…Zalathar

Fix autodiff empty ret regression

closes rust-lang#147144

The two gsoc summer projects caused a bit of churn, which was to be expected, especially since we don't run autodiff in CI yet.
This adds a void return testcase that we should have had anyway, and fixes the regression.

r? `@Zalathar` (Just guessing since I've seen you in a few LLVM PRs and Oli is probably still busy. Feel free to reroll!)
… r=Zalathar

Remove `no-remap-src-base` from tests

Previously in the `//`-compiletest-directive times, `no-remap-src-base` was implemented as a special `no-*` directive parsing. In the migration from `//` -> `//`@`,` the `// no-remap-src-base` directive was lost, most likely because it had no effect -- the default is not remapping `src-base`.

So remove occurrences of `no-remap-src-base`, as these are not valid directives.

r? `@Zalathar` (since we discussed this on discord, or compiler)
…boet

Fix broken STD build for ESP-IDF

PRs rust-lang#147162 and rust-lang#146937 did [broke](https://github.com/esp-rs/esp-idf-sys/actions/runs/18151791720/job/51663969786) the STD build for `target_os = "espidf"` because that target [does not have neither a `gethostname`, not a `libc::_SC_HOST_NAME_MAX` by default](espressif/esp-idf#14849).

While there is a [3rd party component for this syscall](https://components.espressif.com/components/espressif/sock_utils/versions/0.2.2/readme) in the ESP-IDF component registry, I don't think we should use it, because it does not come with ESP-IDF by default.

Therefore, the one-liner fix just re-routes ESP-IDF into the `unsupported` branch.
Don't create a top-level `true` directory when running UI tests

The funny thing about writing `-Cincremental=true` is that it *does* enable incremental compilation ... using an incremental compilation dir of `./true`.

And for UI tests, that ends up creating a `true` directory in the repository root, which is annoying.

Fortunately, compiletest has an existing `//@ incremental` directive that takes care of creating an empty incremental directory, and passing it to `-Cincremental`.

---

I have manually checked that reverting rust-lang#146649 still causes the updated test to fail.
@rustbot rustbot added the A-CI Area: Our Github Actions CI label Oct 1, 2025
@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 F-autodiff `#![feature(autodiff)]` 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Oct 1, 2025
@Zalathar
Copy link
Contributor Author

Zalathar commented Oct 1, 2025

Rollup of everything in the queue, partly motivated by #147217 (but also this is a reasonable size anyway).

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 1, 2025

📌 Commit de20efd 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 1, 2025
@bors
Copy link
Collaborator

bors commented Oct 1, 2025

⌛ Testing commit de20efd with merge d4ae855...

@bors
Copy link
Collaborator

bors commented Oct 1, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 1, 2025
@bors bors merged commit d4ae855 into rust-lang:master Oct 1, 2025
11 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Oct 1, 2025
Copy link
Contributor

github-actions bot commented Oct 1, 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 1e1a394 (parent) -> d4ae855 (this PR)

Test differences

Show 19 test diffs

Stage 1

  • html::highlight::tests::bench_html_highlighting: [missing] -> pass (J0)
  • [codegen] tests/codegen-llvm/autodiff/void_ret.rs: [missing] -> ignore (ignored when LLVM Enzyme is disabled or LLVM is not the default codegen backend) (J1)
  • [ui] tests/ui/indexing/ambiguity-after-deref-step.rs: [missing] -> pass (J1)
  • [ui] tests/ui/methods/overflow-if-subtyping.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/forced-ambiguity-typenum-ice.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/indexing/ambiguity-after-deref-step.rs: [missing] -> pass (J2)
  • [ui] tests/ui/methods/overflow-if-subtyping.rs: [missing] -> pass (J2)
  • [ui] tests/ui/traits/next-solver/forced-ambiguity-typenum-ice.rs: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/autodiff/void_ret.rs: [missing] -> ignore (ignored when LLVM Enzyme is disabled or LLVM is not the default codegen backend) (J3)

Additionally, 10 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 d4ae855111df8c7ee255bea4c112e74b7d72cf45 --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-aarch64-apple: 12085.5s -> 6131.3s (-49.3%)
  2. dist-x86_64-apple: 8650.4s -> 5807.8s (-32.9%)
  3. x86_64-rust-for-linux: 3067.7s -> 2560.0s (-16.5%)
  4. aarch64-apple: 8289.6s -> 6998.1s (-15.6%)
  5. dist-apple-various: 3662.2s -> 4060.1s (10.9%)
  6. x86_64-gnu-llvm-20-1: 3171.1s -> 3480.8s (9.8%)
  7. dist-i586-gnu-i586-i686-musl: 5283.1s -> 4808.7s (-9.0%)
  8. x86_64-gnu-llvm-20: 2408.1s -> 2618.9s (8.8%)
  9. aarch64-msvc-2: 4819.3s -> 5199.9s (7.9%)
  10. dist-aarch64-msvc: 5520.9s -> 5951.1s (7.8%)
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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#146918 add regression test 29cfb961d501efda16e548814764054ff9203847 (link)
#146980 simplify setup_constraining_predicates, and note it is pote… d77369ab4a783e6d75cccab44a73782e2356cd6c (link)
#147170 compiletest: Pass around DirectiveLine instead of bare st… 5c72016f2140d03ccf5e85debc72d4eec559b05f (link)
#147180 add tests addd836d94c0eaf83c8ddf04985e7dd36c2a5b70 (link)
#147188 Remove usage of compiletest-use-stage0-libtest from CI 9504ecb9ad226b51578a7ca897dec01e497a9750 (link)
#147189 Replace rustc_span::Span with a stripped down version for… 4082a1cc3a87be8c9fdffb90a18f1103cc014320 (link)
#147199 remove outdated comment in (inner) InferCtxt 07d3b91bf09bf954d506e559507048aa655b8061 (link)
#147200 Fix autodiff empty ret regression bbaecdf6d0d45ae289068ab10dd4b62cc9e8a04b (link)
#147209 Remove no-remap-src-base from tests 3875f8eaf5a6db3309586c10b44c8f11bc64b559 (link)
#147213 Fix broken STD build for ESP-IDF 5be8463e23a4d320b787a2f75b91664c15a37a4b (link)
#147217 Don't create a top-level true directory when running UI t… f3b47f72f298cbfc97b0504f3fe7f6dc0190a1ef (link)

previous master: 1e1a39441b

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

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (d4ae855): comparison URL.

Overall result: ✅ improvements - 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.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-1.3% [-5.4%, -0.2%] 19
Improvements ✅
(secondary)
-3.8% [-12.6%, -0.2%] 13
All ❌✅ (primary) -1.3% [-5.4%, -0.2%] 19

Max RSS (memory usage)

Results (primary -2.6%, secondary -6.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.6% [-3.9%, -2.0%] 5
Improvements ✅
(secondary)
-6.2% [-16.6%, -1.8%] 9
All ❌✅ (primary) -2.6% [-3.9%, -2.0%] 5

Cycles

Results (primary -1.7%, secondary -3.8%)

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

mean range count
Regressions ❌
(primary)
2.7% [2.7%, 2.7%] 1
Regressions ❌
(secondary)
6.2% [3.2%, 10.8%] 5
Improvements ✅
(primary)
-3.9% [-4.4%, -3.4%] 2
Improvements ✅
(secondary)
-12.1% [-24.0%, -2.2%] 6
All ❌✅ (primary) -1.7% [-4.4%, 2.7%] 3

Binary size

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

Bootstrap: 471.179s -> 470.999s (-0.04%)
Artifact size: 387.76 MiB -> 387.75 MiB (-0.00%)

@Zalathar Zalathar deleted the rollup-fubv0wy branch October 1, 2025 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-CI Area: Our Github Actions CI 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 F-autodiff `#![feature(autodiff)]` 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-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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.