T Compiler Meeting Agenda 2025 10 02

T-compiler Meeting Agenda 2025-10-02

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

Other WG meetings

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

  • Make #[link=“dl”] an FCW rather than an error by JonathanBrouwer · Pull Request #147262 · rust-lang/rust
    • Fixes #147254 (hard error which should just be a FCW for now)
    • Voting Zulip topic, in favor
  • :beta: “Warn on future errors from temporary lifetimes shortening in Rust 1.92” rust#147056
    • Authored by @dianne (cc @lcnr , @Jieyou Xu, @theemathas for discussion)
    • Voting Zulip topic
    • Implements a FCW to mitigate #145838 (introduced a breaking change to formatting and lifetimes in macros)
    • beta 1.91 will be stable on october 30th
    • Option 2: Revert the breaking change in #145838 and fix the issue with #146098 which would undo the breaking (comment). #146098 is being discussed by T-lang
  • :beta: “remove incorrect fast path” rust#146919
    • Authored by lcnr
    • Fixes #146813 (a P-high stable regression)
    • Perf. run shows minor regressions (comment)
    • Voting Zulip topic, in favor
  • :stable: “remove incorrect fast path” rust#146919
    • Authored by lcnr
    • Voting Zulip topic, now in favor as well (after we have perf. run data). Not so pressing for a dot release.

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-team

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • #[link="dl"] should be an FCW, not a hard error. Affects 450+ crates.” rust#147254

T-types

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

P-high regressions

P-high beta regressions

  • alloc-variant-zeroed causing issues with LTO” rust#145995
    • in beta reverted by #147030 and then fixed by #146766 (waiting for feedback from the issue reporter)

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs 2025-09-29

A relatively quiet week. Most of the improvements are to doc builds, driven by continued packing of the search index in rustdoc-search: stringdex update with more packing #147002 and simplifications to doc(cfg) in Implement RFC 3631: add rustdoc doc_cfg features #138907.

Triage done by @simulacrum. Revision range: ce4beebe..8d72d3e1

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 1.6%]19
Regressions (secondary)0.5%[0.1%, 2.7%]39
Improvements (primary)-0.9%[-8.5%, -0.1%]66
Improvements (secondary)-0.4%[-3.2%, -0.1%]80
All (primary)-0.6%[-8.5%, 1.6%]85

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

Regressions

remove incorrect fast path #146919 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.1%, 0.8%]15
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0

Necessary regression for correctness.

Improvements

Avoid invalidating CFG caches from MirPatch::apply. #146697 (Comparison Link)

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

support opaque types in method selection #146885 (Comparison Link)

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

Remove most #[track_caller] from allocating Vec methods #147042 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.9%[0.9%, 0.9%]1
Regressions (secondary)0.3%[0.2%, 0.4%]4
Improvements (primary)-0.3%[-0.7%, -0.1%]37
Improvements (secondary)-0.3%[-0.5%, -0.0%]26
All (primary)-0.3%[-0.7%, 0.9%]38

rustdoc-search: use the same ID for entry and path to same item #147045 (Comparison Link)

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

JumpThreading: Avoid computing dominators to identify loop headers. #146829 (Comparison Link)

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

One regression is bimodality.

rustdoc-search: stringdex update with more packing #147002 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-1.9%[-5.8%, -0.2%]6
Improvements (secondary)-1.2%[-3.1%, -0.1%]3
All (primary)-1.9%[-5.8%, -0.2%]6

One regression is bimodality.

Mixed

Rollup of 8 pull requests #147037 (Comparison Link)

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

Several rustdoc changes, including what looks like net-new feature work. I don’t think it’s worth digging deeper into the relatively small, relatively few-benchmark-affecting doc regressions here.

Extended temporary argument to format_args!() in all cases #145882 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.8%]15
Regressions (secondary)0.5%[0.0%, 2.9%]19
Improvements (primary)-1.0%[-1.7%, -0.4%]5
Improvements (secondary)-0.2%[-0.2%, -0.1%]3
All (primary)0.0%[-1.7%, 0.8%]20

Correctness fix, likely affects a bunch of code across the compiler and probably not worth digging deeper.

Rollup of 10 pull requests #147074 (Comparison Link)

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

Regression in a few benchmarks that seem to have slowly regressed over several commits…. Mostly limited to incremental scenarios, but I’m not seeing anything obvious in this PR related to incremental – given it’s a rollup doesn’t seem worth digging further. Cachegrind results show regressions mostly in fluent_syntax/bundle loading, which doesn’t clearly map to any of the contained PRs.

Implement RFC 3631: add rustdoc doc_cfg features #138907 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 0.6%]6
Regressions (secondary)0.4%[0.1%, 0.6%]17
Improvements (primary)-1.6%[-4.2%, -0.3%]12
Improvements (secondary)-0.4%[-1.0%, -0.1%]4
All (primary)-1.0%[-4.2%, 0.6%]18

Mixed results, but since it’s a new feature and an overall improvement seems acceptable.

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Next meetings’ agenda draft: hackmd link