T Compiler Meeting Agenda 2026 06 25

T-compiler Meeting Agenda 2026-06-25

Announcements

  • Rust dot release 1.96.1 (#158331) to close issue #158214 (see discussion)
  • 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 @Boxy so we can pass it along).

Other WG meetings

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

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

PRs S-waiting-on-t-compiler

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • “Suspected miscompilation with bool as u32rust#158206
    • Fixed by #158214 (Rust dot release 1.96.1 going out today)

T-types

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

P-high regressions

P-high beta regressions

  • “1.97 beta regression: “conflicting implementations of trait”” rust#157407
    • (T-types) Fixed by #157617

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

2026-06-21 Triage Log

This week had a lot of big swings, with two significant perf regressions that are accepted because they unlock future features and perf improvements. We also saw large improvements in the next trait solver due to the performance optimization work happening there.

Triage done by @JonathanBrouwer with help from @Kobzol. Revision range: b5d46ecb..8b6558a0

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.9%[0.2%, 2.7%]184
Regressions (secondary)1.0%[0.1%, 4.2%]160
Improvements (primary)-0.3%[-0.3%, -0.2%]2
Improvements (secondary)-11.8%[-69.9%, -0.2%]25
All (primary)0.8%[-0.3%, 2.7%]186

5 Regressions, 3 Improvements, 2 Mixed; 4 of them in rollups 30 artifact comparisons made in total

Regressions

Add unstable loop unrolling hint attributes #156816 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.3%]17
Regressions (secondary)0.2%[0.0%, 0.5%]22
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.1%, 0.3%]17

Regression caused by adding attribute information to Terminator, as this new information is needed to implement the #[unroll] attribute. There doesn’t seem to be a way to get around this without seriously decreasing code quality.

Make lowering incremental, take 3/N #142830 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.8%[0.1%, 2.7%]172
Regressions (secondary)1.1%[0.1%, 4.2%]105
Improvements (primary)--0
Improvements (secondary)-0.4%[-0.4%, -0.4%]1
All (primary)0.8%[0.1%, 2.7%]172

A perf regression caused adding more queries to the resolver. This has the potential to unlock new features and incremental perf improvements in the future. The perf regression is unavoidable without making this PR bitrot for a long time and much more complex. A lot of work has already gone into making the regression smaller.

Rollup of 13 pull requests #157991 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 3.0%]85
Regressions (secondary)0.7%[0.2%, 2.0%]72
Improvements (primary)-0.4%[-0.5%, -0.3%]2
Improvements (secondary)-0.1%[-0.2%, -0.1%]4
All (primary)0.7%[-0.5%, 3.0%]87

Caused by #157702 which was immediately reverted because of this and other problems.

Rollup of 8 pull requests #158145 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.6%[0.2%, 1.6%]10
Improvements (primary)--0
Improvements (secondary)-1.1%[-1.1%, -1.1%]1
All (primary)--0

Caused by #158075, the author has been pinged but no reply yet.

Rollup of 3 pull requests #158162 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.8%]6
Regressions (secondary)0.6%[0.1%, 1.1%]21
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.3%, 0.8%]6

Caused by #157976, the author has been made aware and seems to be looking into it.

Improvements

Mixed

-Znext-solver Less normalizes-to janks #156619 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.8%[0.8%, 0.9%]3
Improvements (primary)-0.3%[-0.6%, -0.1%]16
Improvements (secondary)-1.2%[-3.6%, -0.1%]20
All (primary)-0.3%[-0.6%, -0.1%]16

This is mostly improvement and the regression only happens with wg-grammar with the second benchmark, with the next-solver. With this PR, we need relatively lesser depth in nested goals when normalizing things, which is usually a good thing but for wg-grammar this causes more goals to be visited. More details in the PR.

Dont rerun stalled goals if erased runs succeeded* #157910 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.1%, 0.3%]4
Improvements (primary)--0
Improvements (secondary)-40.8%[-69.6%, -10.5%]6
All (primary)--0

Perf improvements seriously outweigh regressions. If I understand the change correctly, this is caused by adding new fast paths to the trait solver, which usually seriously improve performance but might sometimes be missed and minorly regress performance.

Nominated Issues

T-compiler

  • “Removability of unused imports for traits seemingly conditional to markdown in docs” rust#155098
    • (IIUC) seems more a generic question for the t-compiler, so opened a Zulip thread

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “Use horde’s SyncTable for default query caches and CtxtInternersrust#153826 (last review activity: 2 months ago)
    • cc @tako8ki
  • “Support u128/i128 c-variadic arguments” rust#155429 (last review activity: 2 months ago)
    • cc @Trevor Gross
  • “Move checking placeholder types in return types to typeckrust#153243 (last review activity: 2 months ago)
    • This PR design and motivation seems to have raised some concerns cc @fmease . How do you feel about it now?

Next meetings’ agenda draft: hackmd link