T Compiler Meeting Agenda 2025 07 24

T-compiler Meeting Agenda 2025-07-24

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

  • :beta: “Reword mismatched-lifetime-syntaxes text based on feedback” rust#143914
    • Authored by shepmaster
    • Clarifies the message when the lint mismatched_lifetime_syntaxes triggers, users reported it was confusing.
    • Voting Zulip topic, positive
  • :beta: “Mitigate #[align] name resolution ambiguity regression with a rename” rust#144080
    • Authored by jieyouxu
    • Fixes P-critical #143834 a regression renaming an attribute to something unambiguous
    • Voting Zulip topic, positive
  • :beta: “Fix -Ctarget-features getting ignored after crt-staticrust#144143
    • Authored by Gelbpunkt
    • Fixes P-high #144203, -Ctarget-features were ignored after crt-static
    • Voting Zulip topic, positive
  • 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

  • “Regression: align is ambiguous” rust#143834
    • This is fixed by #144080

T-types

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

P-high regressions

P-high beta regressions

  • “regression: ICE compiler/rustc_ty_utils/src/abi.rs:485:62, unwrapping None” rust#143836
    • Should be closed by #142983 (IIUC, as per comment)
  • “where bounds regression in beta+nightly” rust#143992
    • Fixed by #144016 (beta-backport accepted)
  • -Ctarget-features get ignored after crt-staticrust#144203
    • Fixed by #144143

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2025-07-22

Fairly busy week with improvements outweighing regressions. Most of the regressions were considered acceptable given the circumstances (such as landing a long awaited feature). By far the biggest win comes from being a bit smarter about hashing certain information inside of DefPathHash. Since hashing happens quite a lot in the compiler’s query system, optimizing when hashing happens can have large performance impacts.

Triage done by @rylev. Revision range: a9fb6103..3f9f20f7

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.1%, 0.9%]47
Regressions (secondary)0.8%[0.1%, 2.7%]69
Improvements (primary)-0.8%[-4.1%, -0.2%]122
Improvements (secondary)-0.7%[-2.5%, -0.0%]143
All (primary)-0.5%[-4.1%, 0.9%]169

3 Regressions, 8 Improvements, 8 Mixed; 8 of them in rollups 35 artifact comparisons made in total

Regressions

Miri subtree update #144019 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.5%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
  • Noise

Implement unstable trait impl #140399 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.8%]65
Regressions (secondary)0.4%[0.1%, 1.3%]60
Improvements (primary)-0.2%[-0.3%, -0.2%]2
Improvements (secondary)--0
All (primary)0.3%[-0.3%, 0.8%]67
  • “The perf regressions were deemed to be acceptable for the time being, to avoid delaying this feature.”

tests: Require run-fail ui tests to have an exit code (SIGABRT not ok) #143002 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)0.5%[0.4%, 0.8%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.3%]1
  • Noise

Improvements

Rollup of 12 pull requests #144028 (Comparison Link)

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

Rollup of 15 pull requests #144044 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.5%]3
Improvements (primary)-0.7%[-1.6%, -0.2%]21
Improvements (secondary)-0.4%[-1.5%, -0.2%]27
All (primary)-0.7%[-1.6%, -0.2%]21

Only inherit local hash for paths #142903 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-1.0%, -0.2%]140
Improvements (secondary)-0.5%[-1.2%, -0.1%]105
All (primary)-0.4%[-1.0%, -0.2%]140

Rollup of 11 pull requests #144130 (Comparison Link)

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

Rollup of 5 pull requests #144181 (Comparison Link)

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

Weekly cargo update #143861 (Comparison Link)

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

Consider param-env for sizedness fast path #143309 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]2
Regressions (secondary)0.1%[0.1%, 0.1%]1
Improvements (primary)-1.3%[-2.9%, -0.3%]16
Improvements (secondary)-1.1%[-2.9%, -0.1%]19
All (primary)-1.1%[-2.9%, 0.3%]18

Rollup of 8 pull requests #144238 (Comparison Link)

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

Mixed

std::vec: Add UB check for set_len, from_raw_parts_in, and etc. #143877 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 0.9%]4
Regressions (secondary)0.4%[0.3%, 0.6%]2
Improvements (primary)-1.1%[-2.1%, -0.4%]3
Improvements (secondary)--0
All (primary)-0.1%[-2.1%, 0.9%]7
  • Perf is acceptable for being able to catch UB

resolve: Merge NameBindingKind::Module into NameBindingKind::Res #143458 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.7%[0.7%, 0.8%]3
Improvements (primary)-0.5%[-2.1%, -0.1%]30
Improvements (secondary)-0.4%[-1.4%, -0.0%]65
All (primary)-0.5%[-2.1%, 0.2%]31
  • Improvements vastly outweigh regressions (which might just be noise)

Rollup of 11 pull requests #144058 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.4%[-0.6%, -0.2%]15
All (primary)0.2%[0.2%, 0.2%]1
  • The only regression seems like it might just be returning to a previous baseline so it’s not worth investigating.

-Zhigher-ranked-assumptions: Consider WF of coroutine witness when proving outlives assumptions #143545 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 0.5%]29
Regressions (secondary)0.4%[0.0%, 0.6%]50
Improvements (primary)--0
Improvements (secondary)-0.1%[-0.1%, -0.1%]1
All (primary)0.3%[0.1%, 0.5%]29
  • Asked the author and reviewer for thoughts on performance since the regressions were certainly not unexpected, but the PR was merged anyway.

Rollup of 11 pull requests #144109 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]3
Regressions (secondary)0.3%[0.2%, 0.5%]8
Improvements (primary)-1.5%[-1.5%, -1.5%]1
Improvements (secondary)--0
All (primary)-0.1%[-1.5%, 0.4%]4
  • The relative size of the regressions are fairly small, I don’t think it’s worth the investigation.

Split-up stability_index query #143845 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]29
Regressions (secondary)2.0%[0.1%, 3.3%]15
Improvements (primary)-0.4%[-0.6%, -0.2%]23
Improvements (secondary)-0.4%[-0.5%, -0.2%]14
All (primary)0.0%[-0.6%, 0.4%]52
  • As stated here, the perf regressions were considered acceptable.

Rollup of 9 pull requests #144145 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.4%[0.5%, 2.8%]9
Improvements (primary)--0
Improvements (secondary)-0.1%[-0.3%, -0.0%]2
All (primary)--0

Simplify discriminant codegen for niche-encoded variants which don’t wrap across an integer boundary #143784 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.7%[0.4%, 0.8%]4
Regressions (secondary)1.6%[1.6%, 1.6%]1
Improvements (primary)-0.4%[-1.3%, -0.2%]16
Improvements (secondary)-0.5%[-1.5%, -0.2%]20
All (primary)-0.2%[-1.3%, 0.8%]20

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

  • “feat: add succinct-zkvm os and target” rust#138463 (last review activity: 4 months ago)
    • cc @Wesley Wiser
  • “[Coverage][MCDC] Do not initialize mcdc parameters for instances containing no mcdc statements” rust#129989 (last review activity: 3 months ago)
    • cc @Zalathar (but the comments may indicate this pull request needs a discussion
  • “Do not run per-module late lints if they can be all skipped” rust#139597 (last review activity: 3 months ago)
    • cc @Boxy
  • “Add FileCheck annotations to mir-opt/copy-prop” rust#135099 (last review activity: 3 months ago)
  • “Allow &raw [mut | const] for union field in safe” rust#141469 (last review activity: about 58 days ago)
    • cc @Michael (compiler-errors) Goulet

Next meetings’ agenda draft: hackmd link