T Compiler Meeting Agenda 2025 06 19

T-compiler Meeting Agenda 2025-06-19

Announcements

  • Next week release of rustc stable 1.88 draft release notes
  • 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: “Make the assertion in Ident::new debug-only.” rust#140880
    • Authored by nnethercote
    • Fixes #140252, a perf regression (perf win report), merged 3 days ago
    • Voting Zulip topic (in favor)
  • :beta: “Avoid creating an empty identifer in Symbol::to_ident_string.” rust#141318
    • Authored by nnethercote
    • Fixes the root cause for an ICE in #140884 (and helps also with #140880, which fixes the symptoms), merged 3 days ago
    • Voting Zulip topic (in favor)
  • :beta: “Update to LLVM 20.1.7” rust#142447
    • Authored by dianqk, (vibe check) nomination from @_apiraino
    • Voting Zulip topic, (would decline because too close to the release and uncertain advantages)
  • 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-team

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

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs 2025-06-17

Relatively quiet week, with a few improvements to benchmarks leveraging the new trait solver.

Triage done by @kobzol. Revision range: c31cccb7..45acf54e

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 0.5%]14
Regressions (secondary)0.3%[0.1%, 0.5%]52
Improvements (primary)-0.5%[-4.8%, -0.1%]68
Improvements (secondary)-4.3%[-56.5%, -0.1%]85
All (primary)-0.4%[-4.8%, 0.5%]82

3 Regressions, 7 Improvements, 4 Mixed; 4 of them in rollups 51 artifact comparisons made in total

Regressions

Rollup of 16 pull requests #142299 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.1%, 0.7%]8
Regressions (secondary)0.4%[0.2%, 1.1%]37
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)--0
All (primary)0.4%[-0.2%, 0.7%]9
  • Regression caused by #142240.
  • Regression fixed in #142398.
  • Marked as triaged.

Infrastructure for lints during attribute parsing, specifically duplicate usages of attributes #138164 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.1%, 1.0%]107
Regressions (secondary)1.0%[0.1%, 3.1%]56
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.1%, 1.0%]107
  • Regression was fixed in #142455.
  • Marked as triaged.

Rollup of 9 pull requests #142443 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.3%]7
Regressions (secondary)0.3%[0.2%, 0.5%]22
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.1%, 0.3%]7
  • Most of the (small) regressions seem to be caused by #142308, which only updates dependencies.
  • Marked as triaged.

Improvements

Rollup of 10 pull requests #142392 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-4.9%, -0.1%]37
Improvements (secondary)-1.4%[-7.7%, -0.2%]72
All (primary)-0.8%[-4.9%, -0.1%]37

[perf] GenericArgs-related: Change asserts to debug asserts & use more slice interning over iterable interning #142289 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.1%]15
Improvements (secondary)-1.2%[-4.7%, -0.1%]13
All (primary)-0.2%[-0.3%, -0.1%]15

move fast reject into inner #142355 (Comparison Link)

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

early linting: avoid redundant calls to check_id #142398 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.3%[-0.6%, -0.1%]29
Improvements (secondary)-0.4%[-1.0%, -0.2%]31
All (primary)-0.3%[-0.6%, -0.1%]29

Don’t fold ExternalConstraintsData when it’s empty #142430 (Comparison Link)

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

collect delayed lints in hir_crate_items #142455 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.4%[-0.8%, -0.2%]87
Improvements (secondary)-1.0%[-2.5%, -0.1%]42
All (primary)-0.4%[-0.8%, -0.2%]87

use MixedBitSet for borrows-in-scope dataflow analysis #142471 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.6%]2
Improvements (secondary)-0.6%[-0.7%, -0.4%]5
All (primary)-0.7%[-0.7%, -0.6%]2

Mixed

cache param_env canonicalization #141451 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.5%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-18.3%[-56.0%, -0.2%]13
All (primary)0.5%[0.5%, 0.5%]1
  • The single regression was noise.
  • Marked as triaged.

Remove check_mod_loops query and run the checks per-body instead #141883 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.3%]3
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.4%, -0.2%]8
All (primary)--0
  • Tiny regressions and improvements in secondary benchmarks, it’s a wash.
  • Marked as triaged.

Make root vars more stable #142090 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.1%[0.1%, 0.1%]1
Regressions (secondary)0.3%[0.3%, 0.3%]2
Improvements (primary)--0
Improvements (secondary)-0.9%[-1.2%, -0.4%]9
All (primary)0.1%[0.1%, 0.1%]1
  • The single regression on a primary benchmark is a doc build and it’s super tiny, the rest are tiny improvements.
  • Marked as triaged.

Rollup of 10 pull requests #142442 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.3%]9
Regressions (secondary)0.2%[0.1%, 0.3%]21
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.2%, -0.1%]5
All (primary)0.2%[0.1%, 0.3%]9
  • Several PRs were tried, but so far we haven’t been able to figure out what caused the regression.

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

  • “Add regression test for nested replacement ranges in cfg_eval” rust#139286 (last review activity: 2 months ago)
    • cc: @*fmease
  • “make tidy-alphabetical use a natural sort” rust#141311 (last review activity: about 28 days ago)
    • @nora (Noratrieb)
  • “Distinguish delim kind to decide whether to emit unexpected closing delimiter” rust#138554 (last review activity: about 57 days ago)
    • cc: @yukang

Next meetings’ agenda draft: hackmd link