T Compiler Meeting Agenda 2026 02 12

T-compiler Meeting Agenda 2026-02-12

Announcements

  • Today we release 1.93.1 to fix a few regressions on stable (not compiler related), see blog post
  • 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: “Fix suppression of unused_assignment in binding of unused_variablerust#151556
    • Authored by eggyal
    • Voting Zulip topic, green light
    • Fixes #151514 (another one stemming from #142390)
  • :beta: “layout: handle rigid aliases without params” rust#151814
    • Authored by lcnr
    • Voting Zulip topic, in favor
    • Fixes #151791, a P-high (discussed during past meetings, we were waiting for it to be merged)
  • :beta: “Fix missing unused_variables lint when using a match guard” rust#151990
    • Authored by eggyal
    • Voting Zulip topic
    • Fixes #151983 (another one stemming from #142390)
  • :beta: “[BETA]: parse array lengths without stripping const blocks” rust#152237
    • Authored by BoxyUwU
    • Voting Zulip topic, in favor
    • Flaky rustdoc tests are blocking merging, see comment and canary PR #152393
  • :beta: “Partially revert “resolve: Update NameBindingData::vis in place”” rust#152498
    • Authored by petrochenkov
    • Voting Zulip topic, in favor
    • By partially reverting 227e7bd we fix #152004, #151124 and #152347
  • :beta: “Fix feature gating for new try bikeshed expressions” rust#152519
    • Authored by scottmcm
    • Voting Zulip topic
    • Nice little fix for #152519 that is leaking the experimental try {}
  • :stable: “layout: handle rigid aliases without params” rust#151814
    • Authored by lcnr
    • Voting Zulip topic, in favor but the backport couldn’t make it in time

T-types beta / T-types stable

  • No beta nominations for T-types this time.
  • No stable nominations for T-types this time.

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

  • try bikeshed $ty { … } is not pre-expansion gated (affects beta+nightly)” rust#152501
    • will be fixed by #152519

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

2026-02-09 Triage Log

This week we saw quite a few improvements. Largest one comes from adding two targeted with_capacity calls in #151929. Another source of multiple improvements is the ongoing migration away from using external files to store diagnostic messages.

Triage done by @panstromek. Revision range: a60d12cb..39219ceb

Summary:

(instructions:u)meanrangecount
Regressions ❌ (primary)2.0%[2.0%, 2.0%]1
Regressions ❌ (secondary)0.6%[0.0%, 2.0%]22
Improvements ✅ (primary)-0.8%[-2.8%, -0.2%]179
Improvements ✅ (secondary)-3.1%[-31.1%, -0.0%]211
All ❌✅ (primary)-0.7%[-2.8%, 2.0%]180

1 Regression, 6 Improvements, 7 Mixed; 9 of them in rollups 36 artifact comparisons made in total

Regressions

Pass on the feedable query modifier to macros #151546 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)0.4%[0.2%, 0.9%]20
Regressions ❌ (secondary)0.5%[0.0%, 1.0%]47
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-0.0%[-0.0%, -0.0%]2
All ❌✅ (primary)0.4%[0.2%, 0.9%]20

Regressions coming from enabling assertions that were previously disabled by accident. Already triaged by @lqd.

Improvements

resolve: Use IdentKey in resolve_ident_in_scope_set #151820 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-0.3%[-0.3%, -0.2%]8
Improvements ✅ (secondary)-0.4%[-0.9%, -0.1%]22
All ❌✅ (primary)-0.3%[-0.3%, -0.2%]8

Use with_capacity in query_key_hash_verify and PlaceholderExpander #151929 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-0.6%[-3.3%, -0.2%]166
Improvements ✅ (secondary)-0.9%[-3.4%, -0.1%]161
All ❌✅ (primary)-0.6%[-3.3%, -0.2%]166

Rollup of 12 pull requests #152104 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-0.7%[-1.5%, -0.2%]29
All ❌✅ (primary)--0

skip codegen for intrinsics with big fallback bodies if the backend does not need them #150605 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-1.3%[-2.3%, -0.4%]2
Improvements ✅ (secondary)--0
All ❌✅ (primary)-1.3%[-2.3%, -0.4%]2

Note: This PR addresses a regression from November.

Rollup of 9 pull requests #152163 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-1.3%[-3.6%, -0.2%]38
All ❌✅ (primary)--0

Rollup of 13 pull requests #152213 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)0.3%[0.3%, 0.3%]1
Improvements ✅ (primary)-0.2%[-0.2%, -0.2%]1
Improvements ✅ (secondary)-1.8%[-5.5%, -0.1%]42
All ❌✅ (primary)-0.2%[-0.2%, -0.2%]1

Mixed

Rollup of 12 pull requests #152063 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)0.3%[0.2%, 0.7%]12
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-0.4%[-0.7%, -0.2%]14
All ❌✅ (primary)--0

Caused by https://github.com/rust-lang/rust/pull/151944. Already triaged by @JonathanBrouwer.

Rollup of 7 pull requests #152075 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)0.8%[0.2%, 1.4%]10
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-0.3%[-0.4%, -0.2%]15
All ❌✅ (primary)--0

Caused by https://github.com/rust-lang/rust/pull/148967. @JonathanBrouwer proposes to accept it in https://github.com/rust-lang/rust/pull/148967#issuecomment-3846276431. The perf impact was assesed before the merge, final results are only slightly different from the last per-merge results. All regressions are secondary stress tests, often related to CTFE.

Rollup of 18 pull requests #152156 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)1.1%[1.1%, 1.1%]1
Improvements ✅ (primary)-0.3%[-0.5%, -0.2%]9
Improvements ✅ (secondary)-1.8%[-7.0%, -0.1%]64
All ❌✅ (primary)-0.3%[-0.5%, -0.2%]9

Already triaged by @JonathanBrouwer. Improvements from inline diagnostics change. One regression in UCD is noise.

Rollup of 3 pull requests #152239 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)0.9%[0.5%, 1.4%]9
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-4.7%[-15.6%, -0.4%]32
All ❌✅ (primary)--0

Impact caused by https://github.com/rust-lang/rust/pull/152189, Improvements outweigh regressions. Already triaged by @JonathanBrouwer.

Rollup of 4 pull requests #152264 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)0.2%[0.1%, 0.2%]4
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-1.0%[-3.2%, -0.4%]17
All ❌✅ (primary)--0

Already triaged by @JonathanBrouwer. Caused by inline diagnostics changes in https://github.com/rust-lang/rust/pull/152126 and https://github.com/rust-lang/rust/pull/152186.

Rollup of 7 pull requests #152308 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)0.8%[0.4%, 1.1%]12
Regressions ❌ (secondary)0.1%[0.0%, 0.1%]2
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-2.1%[-3.8%, -1.1%]4
All ❌✅ (primary)0.8%[0.4%, 1.1%]12

Caused by https://github.com/rust-lang/rust/pull/152217, already triaged by @JonathanBrouwer in https://github.com/rust-lang/rust/pull/152308#issuecomment-3867053365.

Another inline diagnostic migration change. Regressed benchmark generates a lot of diagnostics. There’s a plan to address regressions from this diagnostic migration later.

GVN: Only propagate borrows from SSA locals #150485 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌ (primary)1.0%[0.3%, 2.0%]3
Regressions ❌ (secondary)0.7%[0.3%, 1.9%]4
Improvements ✅ (primary)-1.0%[-1.0%, -1.0%]2
Improvements ✅ (secondary)--0
All ❌✅ (primary)0.2%[-1.0%, 2.0%]5

Results match pre-merge results, which was accepted in https://github.com/rust-lang/rust/pull/150485#issuecomment-3853373696.

Nominated Issues

T-compiler

  • “Do not use dlltool to create DLL Import Libraries for Windows” rust#147274
    • previously discussed
    • now the binutils part is not blocking anymore but @Mateusz Mikuła (mati865) points out that we don’t have a binutils minimal supported version policy
    • So how can we introduce such breaking change?

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “Add support for xray in aarch64 unknown none target” rust#148666 (last review activity: 3 months ago)
    • cc @Wesley Wiser
  • “Do not use dlltool to create DLL Import Libraries for Windows” rust#147274 (last review activity: about 55 days ago)
    • @Wesley Wiser

Next meetings’ agenda draft: hackmd link