T Compiler Meeting Agenda 2026 07 30

T-compiler Meeting Agenda 2026-07-30

Announcements

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Rename splat to avoid stable name collisions” rust#159817
    • Authored by teor2345
    • Voting Zulip topic, unanimously approved
  • :beta: “Rename #[unroll] => #[rustc_unroll] to mitigate names ambiguity” rust#160211
  • 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

  • “dist-i686-msvc hang on lint-docs” rust#158378
    • (being worked on, nothing to do)

T-types

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

(new) Stable regressions

Just a quick check:

P-high regressions

P-high beta regressions

  • “1.98 beta regression: “queries overflow the depth limit!”” rust#159427
    • Discussion on Zulip
    • In some similar cases (IIUC) of overflow error, we fixed the crates as per the suggestion ("consider increasing the recursion limit"), unsure if this is the case here. Opinions? What should we do? (cc @cjgillot @oli)
  • “1.98 beta regression due to name collision with splatrust#159428
    • Solved by renaming the attribute (#159817)
  • “1.98 beta regression due to name collision with unrollrust#159429
    • Same reasoning, proposed fix #160211 (authored by @Jieyou Xu, thanks!)

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

2026-07-27 Triage Log

Several large improvements landed in the past week:

Great to see so many improvements!

Triage done by @simulacrum. Revision range: d527bc9b..ad0c9dce

Summary:

(instructions:u)meanrangecount
Regressions (primary)16.2%[16.2%, 16.2%]1
Regressions (secondary)0.4%[0.1%, 0.6%]17
Improvements (primary)-3.3%[-50.5%, -0.1%]143
Improvements (secondary)-8.8%[-50.4%, -0.1%]137
All (primary)-3.1%[-50.5%, 16.2%]144

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

Regressions

Rollup of 20 pull requests #159802 (Comparison Link)

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

Root caused to #150161, which increases metadata / incremental dep graph and so causes regressions across the board. @panstromek asked for followup from the author on whether that can be mitigated.

Rollup of 28 pull requests #159966 (Comparison Link)

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

Queued up builds on a few of the contained PRs which should hopefully narrow down root cause.

Improvements

This is being further iterated on in #159916 to bring these improvements to users without needing replacement of escape_default().to_string() with a hand-coded version; that PR will bring further improvements to include-blob.

Mixed

Rollup of 14 pull requests #159634 (Comparison Link)

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

This seems like it’s probably noise - single affected benchmark, and mixed results (improvements and regressions). Not worth further followup.

rustdoc: Only build extern trait impls if needed #159623 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)1.4%[0.6%, 2.2%]2
Regressions (secondary)2.2%[2.2%, 2.2%]1
Improvements (primary)-10.8%[-30.8%, -1.7%]18
Improvements (secondary)-20.3%[-31.4%, -4.9%]24
All (primary)-9.6%[-30.8%, 2.2%]20

Improvements greatly outweigh the small regressions.

codegen: skip stores for entirely-uninit constant aggregate fields #157797 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)16.2%[16.2%, 16.2%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.5%, -0.2%]8
All (primary)16.2%[16.2%, 16.2%]1

Perf looks clean and slightly improving things across the board. There is one regression (building cranelift with opts) that has a 16% compile-time perf hit entirely in LLVM, so this change tips the optimizations over the edge somewhere and causes lots of changes. I have not checked whether it produces better runtime code, but let’s land it regardless.

Quoting from a reviewer comment.

Rollup of 25 pull requests #159942 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.4%[0.2%, 0.5%]4
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.2%, -0.2%]9
All (primary)--0

Regression has held up in subsequent PRs, appears to be limited to our large-workspace benchmark. This was deemed acceptable on the root cause PR (comment), and given the regression is small it seems OK.

Rollup of 14 pull requests #160003 (Comparison Link)

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

Most likely new-solver specific regression coming from a bug fix #159840.

Nominated Issues

T-compiler

  • “1.98 beta regressions involving ambiguous glob imports” rust#159432
    • This crater run shows many more breaking crates (about 30, see comment) than the original PR crate run which was then used to inform making that breakage
    • See triage comment and comment
    • I (@apiraino) nominated this one, relaying @_theemathas question: should we have T-lang FCP these breaking changes?
  • Describe approval needed for promoting/demoting between T2 w/ host tools <=> T2 w/out host tools? forge#1085

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “Region inference: split results from RegionInferenceContext” rust#151688 (last review activity: 3 months ago)
    • cc: @lcnr (perhaps author asks for feedback, can’t follow the thread, there are a few of review comments not resolved)
  • “adds better error message for temporary value does not live long enough” rust#154810 (last review activity: 3 months ago)
    • cc @Yuki Okushi
  • “Use horde’s SyncTable for default query caches and CtxtInternersrust#153826 (last review activity: 3 months ago)
    • cc @_TaKO8Ki
  • “Move checking placeholder types in return types to typeckrust#153243 (last review activity: 3 months ago)
    • This PR design and motivation made @fmease raise some concerns (comment). @fmease how do you feel about it now?

Next meetings’ agenda draft: hackmd link