T Compiler Meeting Agenda 2026 07 23

T-compiler Meeting Agenda 2026-07-23

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 @Boxy so we can pass it along).

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Fix string indexing in diagnostic format strings” rust#159470
  • :beta: “Resolver: Record at least 1 ambiguous trait if main decl is not a trait.” rust#159599
    • Authored by LorrensP-2158466
    • Addresses #159476 (beta crater run regression, P-high)
    • Voting Zulip topic, do we want to backport?
  • 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

T-types

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

P-high regressions

P-high beta regressions

  • “1.98 beta regression: “queries overflow the depth limit!”” rust#159427
    • Was bisected, needs patching
  • “1.98 beta regression due to name collision with splatrust#159428
    • See following section of the agenda “Discussions and FYIs”
  • “1.98 beta regression due to name collision with unrollrust#159429
    • Again a name collision with an unstable attribute, see “Discussions and FYIs”
  • “1.98 beta rustdoc crater regression: “no method named … found”” rust#159476
    • Fixed by #159599

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

2026-07-21 Triage Log

The two most notable changes this week were #159115, which resulted in pretty nice instruction count wins for full incremental builds on several benchmarks, and #159091, which enabled PGO for rustdoc, which makes it ~3-4% faster across the board.

There were two large rollups with tiny performance regressions, which made it difficult to find the offending PRs.

Triage done by @Kobzol. Revision range: 5503df87..d527bc9b

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 1.0%]40
Regressions (secondary)0.7%[0.2%, 4.6%]69
Improvements (primary)-2.0%[-6.2%, -0.2%]136
Improvements (secondary)-2.6%[-8.4%, -0.2%]119
All (primary)-1.4%[-6.2%, 1.0%]176

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

Regressions

Rollup of 13 pull requests #159246 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]3
Regressions (secondary)0.3%[0.2%, 0.5%]20
Improvements (primary)--0
Improvements (secondary)-0.6%[-0.6%, -0.6%]1
All (primary)0.3%[0.3%, 0.3%]3
  • The regressions are tiny, but across the board.
  • Started several performance runs.
  • Not marking as triaged yet.

Shrink ast::Expr64 #158720 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.6%]3
Regressions (secondary)0.6%[0.3%, 1.3%]25
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.3%, 0.6%]3
  • This change resulted in instruction count regressions, but cycle count and wall-time wins.
  • Already marked as triaged.

Improvements

Mixed

Eagerly check for ambiguity in macro parsing #158976 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.4%]10
Improvements (primary)-0.9%[-2.3%, -0.3%]29
Improvements (secondary)-0.6%[-0.9%, -0.4%]5
All (primary)-0.9%[-2.3%, -0.3%]29
  • More wins than regressions.
  • Already marked as triaged.

Rollup of 22 pull requests #159293 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.2%, 0.8%]13
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.2%]2
All (primary)--0
  • There seems to be a very tiny regression across the board, which is a bit larger (but still small) on some secondary benchmarks.
  • The wg-grammar tiny regression was likely caused by #158993.
  • Marked as triaged.

Rollup of 2 pull requests #159350 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]7
Regressions (secondary)0.3%[0.2%, 0.5%]26
Improvements (primary)-0.8%[-0.9%, -0.8%]4
Improvements (secondary)-2.9%[-5.1%, -0.7%]2
All (primary)-0.1%[-0.9%, 0.5%]11
  • Small regression caused by standard library dependency upgrades in #159345.
  • Already marked as triaged.

Move fast paths around to gain a bit of new-solver perf #158249 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.2%[0.2%, 2.2%]11
Improvements (primary)--0
Improvements (secondary)-5.1%[-8.4%, -1.5%]6
All (primary)--0
  • Only affects the next trait solver. Some benchmarks regressed, but there are larger wins.
  • Marked as triaged.

Use PGO for rustdoc #159091 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)4.5%[4.5%, 4.5%]1
Improvements (primary)-4.1%[-6.3%, -1.6%]20
Improvements (secondary)-5.1%[-8.1%, -2.0%]23
All (primary)-4.1%[-6.3%, -1.6%]20
  • Many wins on doc benchmarks, expectedly, as this PR enabled PGO for rustdoc.
  • Only one regression on a secondary benchmark.
  • Marked as triaged.

perf: dep_graph: deduplicate task reads with an epoch-filtered index recorder #159115 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 0.5%]11
Regressions (secondary)0.2%[0.2%, 0.3%]4
Improvements (primary)-1.8%[-6.4%, -0.3%]101
Improvements (secondary)-1.5%[-4.9%, -0.1%]96
All (primary)-1.6%[-6.4%, 0.5%]112
  • A lot of big wins, and only a few tiny regressions.
  • Marked as triaged.

Discussions and FYIs

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

Will resume next week.

Next meeting’s agenda draft: hackmd link