T Compiler Meeting Agenda 2025 10 09

T-compiler Meeting Agenda 2025-10-09

Announcements

  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).

Other WG meetings

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Don’t normalize higher-ranked assumptions if they’re not used” rust#147299
    • Authored by compiler-errors
    • No voting Zulip topics :shrug:, backports need to be decided here
    • Fixes #147244 and #147285 (2 P-high stable regressions)
  • :beta: “Fix target list of link_sectionrust#147418
    • Authored by JonathanBrouwer
    • Fixes an annoying and confusing warning from #147411
    • Voting Zulip topic, in favor
  • :stable: “Don’t normalize higher-ranked assumptions if they’re not used” rust#147299
    • Authored by compiler-errors

T-types beta / T-types stable

  • :beta: and :stable: “Don’t normalize higher-ranked assumptions if they’re not used” rust#147299
    • Discussed above

PRs S-waiting-on-t-compiler

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • No P-critical issues for T-compiler this time.

T-types

  • No P-critical issues for T-types this time.

P-high regressions

P-high beta regressions

  • alloc-variant-zeroed causing issues with LTO” rust#145995
  • “Duplicate warning on some attributes with wrong targets” rust#147417

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2025-10-06

Largely a positive week. Big win coming from avoiding unnecessary work for debug log in #147293, and another one for rustdoc from optimized span representation for highlighter #147189. Lots of noisy results otherwise.

Triage done by @panstromek. Revision range: 8d72d3e1..1a3cdd34

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 2.0%]10
Regressions (secondary)0.4%[0.0%, 0.8%]50
Improvements (primary)-1.3%[-5.3%, -0.2%]147
Improvements (secondary)-1.3%[-12.7%, -0.1%]111
All (primary)-1.2%[-5.3%, 2.0%]157

6 Regressions, 3 Improvements, 6 Mixed; 8 of them in rollups 40 artifact comparisons made in total

Regressions

Rollup of 7 pull requests #147140 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.3%]6
Regressions (secondary)0.2%[0.0%, 0.4%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.1%, 0.3%]6

Based on perf runs on respective PRs, this seems to be https://github.com/rust-lang/rust/pull/133477. https://github.com/rust-lang/rust/pull/147092 was tested but regressions on that are noise and don’t match this PR. Other PR’s don’t touch benchmarked code.

This could also be noise, since the results somewhat fit a bimodal pattern and changes are tiny, but detailed results show increases in number of executed visibility related queries.

Rollup of 5 pull requests #147186 (Comparison Link)

(instructions:u)meanrangecount
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

clap_derive bimodal noise

Turn ProjectionElem::Subtype into CastKind::Subtype #147055 (Comparison Link)

(instructions:u)meanrangecount
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

clap_derive bimodal noise

Rollup of 9 pull requests #147261 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)2.8%[2.8%, 2.8%]1
Regressions (secondary)0.1%[0.1%, 0.1%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)2.8%[2.8%, 2.8%]1

clap_derive bimodal noise and something that looks like optimization shuffling in coercions (most of the changes are in the backend). This is a small change in secondary benchmark, so I don’t think this is worth more investigation.

Extending #[rustc_force_inline] to be applicable to inherent methods #147231 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)3.1%[3.1%, 3.1%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)3.1%[3.1%, 3.1%]1

clap_derive bimodal noise

don’t make empty ident when printing ' ident from extern "'" #147377 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.8%, 1.0%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0

Perf results are noise. Looks like wg-grammar became bimodal recently.

Improvements

Rollup of 11 pull requests #147220 (Comparison Link)

(instructions:u)meanrangecount
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

Test: Ambigious bindings in same namespace with the same res #147196 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.9%[-2.9%, -2.9%]1
Improvements (secondary)--0
All (primary)-2.9%[-2.9%, -2.9%]1

Rollup of 6 pull requests #147282 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.9%[-2.9%, -2.9%]1
Improvements (secondary)--0
All (primary)-2.9%[-2.9%, -2.9%]1

Mixed

Rollup of 6 pull requests #147197 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-1.5%[-2.9%, -0.4%]3
Improvements (secondary)-0.6%[-1.2%, -0.3%]5
All (primary)-1.5%[-2.9%, -0.4%]3

Improvements outweigh regressions. coercions regression also looks like noise.

Split Bound index into Canonical and Bound #147138 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.4%]7
Regressions (secondary)0.1%[0.1%, 0.2%]11
Improvements (primary)-1.0%[-2.8%, -0.1%]4
Improvements (secondary)-0.3%[-1.1%, -0.0%]11
All (primary)-0.3%[-2.8%, 0.4%]11

Improvements outweigh regressions, but some of those improvements are noise (clap-derive and syn). Main regressions match pre-merge results, so I assume this was deemed acceptable as a part of work on new solver, but I don’t see any explicit justification.

Introduce debuginfo to statements in MIR #142771 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.1%, 2.0%]9
Regressions (secondary)0.5%[0.1%, 0.9%]43
Improvements (primary)-0.3%[-1.2%, -0.1%]101
Improvements (secondary)-0.3%[-1.0%, -0.1%]102
All (primary)-0.3%[-1.2%, 2.0%]110

Improvements outweigh regressions. Some secondary regressions are just noise (wg-grammar), the biggest meaningful change seems to be diesel opt, as mentioned in https://github.com/rust-lang/rust/pull/142771#issuecomment-3367798805, due to more inlining, syn seems to be a similar case.

Rollup of 10 pull requests #147340 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.1%[0.1%, 0.1%]2
Regressions (secondary)0.2%[0.1%, 0.3%]12
Improvements (primary)--0
Improvements (secondary)-0.9%[-1.0%, -0.8%]6
All (primary)0.1%[0.1%, 0.1%]2

Non-doc changes are mostly noise. Doc changes are not super clear to me. Even hello-world changed a tiny bit, so maybe this is just caused by the number of std changes? Some of those changes also mirror https://github.com/rust-lang/rust/pull/142771 dip, so it could also be noise.

Either way, all doc changes are small and mostly secondary, I think we don’t need to look more deeply into it.

Avoid getting dep_dep_node unnecessarily. #147293 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.8%, 1.0%]6
Improvements (primary)-1.3%[-3.5%, -0.2%]115
Improvements (secondary)-1.1%[-2.6%, -0.2%]61
All (primary)-1.3%[-3.5%, -0.2%]115

wg-grammar regressions are noise, this is clearly a win otherwise.

Rollup of 7 pull requests #147363 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.1%[0.1%, 0.1%]1
Improvements (primary)-0.5%[-1.6%, -0.2%]6
Improvements (secondary)-0.5%[-1.6%, -0.0%]4
All (primary)-0.5%[-1.6%, -0.2%]6

Improvements outweigh a small regression in secondary stress test.

Nominated Issues

T-compiler

  • “Gate tests with the right edition” rust#147498
    • Nominated by @Jieyou Xu, asks to check if it looks good
    • This PR implements what was discussed in mcp#861 (i.e. add capability to run tests, splitting by edition)

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “Revert “Change prefetch to avoid deadlock”” rust#121910 (last review activity: 19 months ago)
    • cc @cjgillot (just unblocked)
  • “feat: add succinct-zkvm os and target” rust#138463 (last review activity: 6 months ago)
  • “diagnostics: hide expansion of builtin-like macros” rust#141314 (last review activity: 4 months ago)
    • cc @Vadim Petrochenkov does your last comment mean that that PR can be closed?

Next meetings’ agenda draft: hackmd link