T Compiler Meeting Agenda 2026 04 09

T-compiler Meeting Agenda 2026-04-09

Announcements

  • Rust 1.95 release next week
  • T-infra is running a short survey to learn more about peoples’ thoughts about the Rust Infrastructure (pain points, how can it improve our work, etc.). Please take a minute to leave an opinion️️ 🙂: https://www.surveyhero.com/c/rust-project-infra-feedback-2026
  • 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: “Revert -Znext-solver Remove the forced ambiguity hack from search graph” rust#154712
    • Authored by lqd
    • Mostly reverting because of #153910 (substancial Bevy compile time regression)
    • Voting Zulip topic, in favor
    • Actually T-types voted the backport, see other thread, seems safe to backport
  • :beta: “Revert performing basic const checks in typeck on stable” rust#154930
    • Authored by oli-obk
    • Note: T-release is also waiting for this (see comment)
    • Voting Zulip topic, in favor
    • Also this one mirroring T-types approval (see on Zulip)
  • No stable nominations for T-compiler this 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

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

2026-04-05 Triage Log

A shorter week than normal (probably due to later perf triage last week). Overall fairly small changes scattered across various PRs, though the net effect was slightly positive (-0.5% avg change). All changed ended up either mixed or improvements this week.

Triage done by @simulacrum. Revision range: cf7da0b7..e73c56ab

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]2
Regressions (secondary)2.7%[0.2%, 7.9%]47
Improvements (primary)-0.5%[-1.6%, -0.1%]164
Improvements (secondary)-0.5%[-1.9%, -0.1%]115
All (primary)-0.5%[-1.6%, 0.4%]166

0 Regressions, 3 Improvements, 8 Mixed; 5 of them in rollups 26 artifact comparisons made in total

Regressions

No regressions this week.

Improvements

Rollup of 4 pull requests #154638 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.2%]3
Improvements (secondary)--0
All (primary)-0.2%[-0.3%, -0.2%]3

Rollup of 5 pull requests #154659 (Comparison Link)

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

Streamline CachingSourceMapView #154614 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.7%, -0.1%]135
Improvements (secondary)-0.4%[-1.4%, -0.1%]95
All (primary)-0.4%[-0.7%, -0.1%]135

Mixed

Properly generalize unevaluated consts #154053 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]3
Improvements (primary)-0.3%[-0.3%, -0.3%]1
Improvements (secondary)-0.1%[-0.2%, -0.0%]7
All (primary)-0.3%[-0.3%, -0.3%]1

Regressions are limited to new solver, and fairly small. Most likely no need to investigate deeper, especially as this also fixes a few bugs.

Rollup of 4 pull requests #154668 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.4%]4
Regressions (secondary)0.2%[0.0%, 0.3%]14
Improvements (primary)--0
Improvements (secondary)-0.4%[-1.1%, -0.0%]5
All (primary)0.2%[0.1%, 0.4%]4

Most likely caused by extending integers with new methods in #154356. Enqueued a build to confirm that theory, see comment.

Don’t use disk-cache for query def_kind #154292 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.0%, 1.1%]5
Improvements (primary)-0.3%[-0.4%, -0.1%]62
Improvements (secondary)-0.4%[-0.7%, -0.1%]28
All (primary)-0.3%[-0.4%, -0.1%]62

Not entirely clear but the instruction count regressions look like they may be within noise threshold in practice. Improvements also clearly outweigh the small regressions, so marking as triaged.

Revert #151380 and #153869 #154308 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 0.5%]16
Regressions (secondary)3.6%[0.0%, 8.6%]36
Improvements (primary)--0
Improvements (secondary)-0.3%[-1.1%, -0.0%]16
All (primary)0.3%[0.1%, 0.5%]16

This reverts two improvements that landed in a previous week, so regressions are expected. This is ultimately a correctness fix.

Revert “Fix: On wasm targets, call panic_in_cleanup if panic occurs in cleanup #151771” #154700 (Comparison Link)

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

revert, tiny changes, could be noise, the original PR didn’t have these as positive results, marking as triaged as there’s nothing much to do or investigate (until it relands and shows perf changes)

(see https://github.com/rust-lang/rust/pull/154700#issuecomment-4176873246)

Rollup of 20 pull requests #154727 (Comparison Link)

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

Probably noise (at least the regression), either way not worth investigating further.

Port lint attributes to attribute parser #152369 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.3%[0.2%, 0.5%]7
Improvements (primary)-0.3%[-0.6%, -0.2%]20
Improvements (secondary)-0.4%[-0.6%, -0.0%]37
All (primary)-0.3%[-0.6%, 0.2%]21

Perf wins significantly outweigh the regressions.

Rollup of 5 pull requests #154802 (Comparison Link)

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

Regression almost certainly due to https://github.com/rust-lang/rust/pull/154376#issuecomment-4130882120, that perf run matches pretty closely what we see here. I don’t think further investigation is warranted, the affected benchmark intentionally stresses the lint system (unused-warnings).

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • Remove fewer Storage calls in CopyProp and GVN" rust#142531
    • cc @cjgillot
  • “Skipping borrowck because of trivial const” rust#149468 (last review activity: about 55 days ago)
    • cc @lcnr* question for you
  • “HIR typeck: use correct expectations for negation operators” rust#151539 (last review activity: about 53 days ago)
    • cc @Boxy this one needs an FCP but before I think the author left a comment asking for an opinion

Next meeting agenda draft: hackmd link