Skip to content

Rollup of 5 pull requests#152089

Merged
rust-bors[bot] merged 12 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-h74gaTC
Feb 4, 2026
Merged

Rollup of 5 pull requests#152089
rust-bors[bot] merged 12 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-h74gaTC

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

crazazy and others added 12 commits February 2, 2026 13:01
I'm one of the rare cases that does have uv, but doesn't have python
installed globally
add a link to the issue

fix test stderr
Tune the build configuration for loongarch64-linux targets to speed up rustc.

Changes include:
- Enable jemalloc and rust thin-lto.
- Set codegen-units=1 and disable debug assertions.

These changes reduce rustc-perf compile time by ~17%.
Move the query list into a new `rustc_middle::queries` module

This moves the query list from `rustc_middle::query` into a new `rustc_middle::queries` module. This splits up the use of the query system from the remaining implementation of it in `rustc_middle::query`, which conceptually belong to `rustc_query_system`.

The goal is to let rustc crates define queries with their own `queries` module, and this makes `rustc_middle` also fit this pattern.

The inner `queries` module used by the macros are renamed to `query_info`, so it doesn't conflict with the new outer name.
ci: Optimize loongarch64-linux dist builders

Tune the build configuration for loongarch64-linux targets to speed up rustc.

Changes include:
- Enable jemalloc and rust thin-lto.
- Set codegen-units=1.

These changes reduce rustc-perf compile time by ~17%.
Add uv to the list of possible python runners

Fixes the unlikely case that one has uv, but not python, globally installed

(It's me, I'm the unlikely case)
… r=jdonszelmann

Convert to inline diagnostics in `rustc_interface`

For rust-lang#151366 (comment)
…, r=nnethercote

Avoid semicolon suggestion when tail expr is error

Fixes rust-lang#151610

When the tail expression is Err due to recovery, HIR constructs `StmtKind::Semi(Err(..))`. The suggestion path then uses `stmt.span.with_lo(tail_expr.span.hi())` to target the semicolon, but `stmt.span == tail_expr.span` so the derived span is empty/invalid.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Feb 4, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) 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-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Feb 4, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 4, 2026

📌 Commit b8755a4 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors bot 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 Feb 4, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 4, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 4, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 30m 56s
Pushing 930ecbc to main...

@rust-bors rust-bors bot merged commit 930ecbc into rust-lang:main Feb 4, 2026
12 checks passed
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#151893 Move the query list into a new rustc_middle::queries modu… b5fe857d1462009de7a1b4603c76b07a5b345919 (link)
#151993 Add uv to the list of possible python runners 5706590564b8edd5a30fe80c1df7ba65ad92b438 (link)
#152047 Convert to inline diagnostics in rustc_interface 0d6a2f44ce03a5f2a09a30758dd725c41e553ef4 (link)
#152053 Avoid semicolon suggestion when tail expr is error b6a618150dff08e589d498e0e5548bbf24f1b89c (link)
#152060 ci: Optimize loongarch64-linux dist builders 2027251435e03938c795409d3d93644bfe25ddaa (link)

previous master: 794495e2b4

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 Feb 4, 2026

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 794495e (parent) -> 930ecbc (this PR)

Test differences

Show 268 test diffs

Stage 0

  • errors::verify_interface_abi_required_feature_17: pass -> [missing] (J0)
  • errors::verify_interface_crate_name_does_not_match_0: pass -> [missing] (J0)
  • errors::verify_interface_crate_name_invalid_1: pass -> [missing] (J0)
  • errors::verify_interface_emoji_identifier_3: pass -> [missing] (J0)
  • errors::verify_interface_error_writing_dependencies_6: pass -> [missing] (J0)
  • errors::verify_interface_failed_writing_file_11: pass -> [missing] (J0)
  • errors::verify_interface_ferris_identifier_2: pass -> [missing] (J0)
  • errors::verify_interface_generated_file_conflicts_with_directory_8: pass -> [missing] (J0)
  • errors::verify_interface_ignoring_extra_filename_14: pass -> [missing] (J0)
  • errors::verify_interface_ignoring_out_dir_15: pass -> [missing] (J0)
  • errors::verify_interface_input_file_would_be_overwritten_7: pass -> [missing] (J0)
  • errors::verify_interface_mixed_bin_crate_4: pass -> [missing] (J0)
  • errors::verify_interface_mixed_proc_macro_crate_5: pass -> [missing] (J0)
  • errors::verify_interface_multiple_output_types_adaption_13: pass -> [missing] (J0)
  • errors::verify_interface_multiple_output_types_to_stdout_16: pass -> [missing] (J0)
  • errors::verify_interface_out_dir_error_10: pass -> [missing] (J0)
  • errors::verify_interface_proc_macro_crate_panic_abort_12: pass -> [missing] (J0)
  • errors::verify_interface_temps_dir_error_9: pass -> [missing] (J0)
  • errors::verify_interface_unsupported_crate_type_for_codegen_backend_18: pass -> [missing] (J0)
  • errors::verify_interface_unsupported_crate_type_for_target_19: pass -> [missing] (J0)

Stage 1

  • [ui] tests/ui/type/recover-from-semicolon-trailing-undefined.rs: [missing] -> pass (J0)
  • errors::verify_interface_abi_required_feature_17: pass -> [missing] (J1)
  • errors::verify_interface_crate_name_does_not_match_0: pass -> [missing] (J1)
  • errors::verify_interface_crate_name_invalid_1: pass -> [missing] (J1)
  • errors::verify_interface_emoji_identifier_3: pass -> [missing] (J1)
  • errors::verify_interface_error_writing_dependencies_6: pass -> [missing] (J1)
  • errors::verify_interface_failed_writing_file_11: pass -> [missing] (J1)
  • errors::verify_interface_ferris_identifier_2: pass -> [missing] (J1)
  • errors::verify_interface_generated_file_conflicts_with_directory_8: pass -> [missing] (J1)
  • errors::verify_interface_ignoring_extra_filename_14: pass -> [missing] (J1)
  • errors::verify_interface_ignoring_out_dir_15: pass -> [missing] (J1)
  • errors::verify_interface_input_file_would_be_overwritten_7: pass -> [missing] (J1)
  • errors::verify_interface_mixed_bin_crate_4: pass -> [missing] (J1)
  • errors::verify_interface_mixed_proc_macro_crate_5: pass -> [missing] (J1)
  • errors::verify_interface_multiple_output_types_adaption_13: pass -> [missing] (J1)
  • errors::verify_interface_multiple_output_types_to_stdout_16: pass -> [missing] (J1)
  • errors::verify_interface_out_dir_error_10: pass -> [missing] (J1)
  • errors::verify_interface_proc_macro_crate_panic_abort_12: pass -> [missing] (J1)
  • errors::verify_interface_temps_dir_error_9: pass -> [missing] (J1)
  • errors::verify_interface_unsupported_crate_type_for_codegen_backend_18: pass -> [missing] (J1)
  • errors::verify_interface_unsupported_crate_type_for_target_19: pass -> [missing] (J1)

Stage 2

  • [ui] tests/ui/type/recover-from-semicolon-trailing-undefined.rs: [missing] -> pass (J2)

Additionally, 226 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 930ecbcdf8905c5c8549056c73fcabdd8d6e1b3d --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: 2h 8m -> 2h 39m (+23.9%)
  2. dist-loongarch64-musl: 1h 33m -> 1h 45m (+13.8%)
  3. dist-apple-various: 1h 11m -> 1h 1m (-13.4%)
  4. aarch64-apple: 3h 53m -> 3h 23m (-13.0%)
  5. dist-loongarch64-linux: 1h 31m -> 1h 43m (+12.5%)
  6. x86_64-gnu-llvm-21-1: 1h 13m -> 1h 22m (+11.5%)
  7. dist-aarch64-llvm-mingw: 1h 53m -> 1h 42m (-9.9%)
  8. aarch64-gnu-debug: 1h 13m -> 1h 20m (+9.8%)
  9. aarch64-gnu-llvm-20-1: 1h 10m -> 1h 3m (-9.7%)
  10. x86_64-gnu-llvm-20: 1h 17m -> 1h 11m (-8.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 (930ecbc): 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)

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

Cycles

Results (secondary 3.4%)

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

Binary size

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

Bootstrap: 475.808s -> 477.437s (0.34%)
Artifact size: 398.08 MiB -> 398.08 MiB (-0.00%)

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-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) 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 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants