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
- WG-async design meeting time:2025-07-24T19:00:00+02:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Tier 3 target proposal: riscv64a23-unknown-linux-gnu” compiler-team#894 (Zulip)
- “Relative VTables for Rust” compiler-team#903 (Zulip)
- “Experiment with replacing specialization in libcore with downcasting” compiler-team#904 (Zulip)
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: 9 months ago)
- “Compile UI tests as libraries by default” compiler-team#842 (Zulip) (last review activity: 4 months ago)
- “Unify ui test inline error annotation style” compiler-team#859 (Zulip) (last review activity: 3 months ago)
- “Promote tier 3 riscv32 ESP-IDF targets to tier 2” compiler-team#864 (Zulip) (last review activity: about 41 days ago)
- “Add support for specifying split-debuginfo=unpacked output directory” compiler-team#871 (Zulip) (last review activity: 2 months ago)
- Pending FCP requests (check your boxes!)
- merge: Begin enforcing Tier 2 target maintainer requirements (compiler-team#896)
- @|116266 @|125250 @|116107 @|119031 @|248906 @|426609 @|444933 @|353056
- no pending concerns
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
- no pending checkboxes
- concerns: stabilization-scope (by wesleywiser)
- merge: Fix backtraces with
-C panic=aborton linux; emit unwind tables by default (rust#143613)- @|116266 @|248906 @|426609 @|116122 @|444933 @|353056
- no pending concerns
- merge: const-eval: full support for pointer fragments (rust#144081)
- @_|116883
- concerns: spec-complexity-implication (by scottmcm)
- merge: Begin enforcing Tier 2 target maintainer requirements (compiler-team#896)
- Things in FCP (make sure you’re good with it)
- “Add Hotpatch flag” compiler-team#745 (Zulip)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: inhibit-opts
- concern: lose-debuginfo-data
- concern: impl-at-mir-level
- “Make the UI test suite more amenable to multiple editions” compiler-team#861 (Zulip)
- “Upgrade
*-linux-musltargets to musl 1.2.5” compiler-team#887 (Zulip) - “Policy: Empower reviewers to reject burdensome PRs” compiler-team#893 (Zulip)
- concern: resolve ai-should-still-be-mentioned-in-motivation
- concern: wording-nits
- concern: ai-should-still-be-mentioned-in-motivation
- “Flag
-Zindirect-branch-cs-prefix(retpoline mitigation)” compiler-team#899 (Zulip) - “Add a tidy check to prevent adding new test files directly under
tests/ui/” compiler-team#902 (Zulip)
- Accepted MCPs
- “setup typos check in CI (for rust repo)” compiler-team#817 (Zulip)
- “Add one more “late metadata”/“digest” file to rlib archives” compiler-team#853 (Zulip)
- “Constrain process required for some user-facing changes to lower support tier targets” compiler-team#884 (Zulip)
- “Expose
target_abi = "elfv{1,2}"onpowerpc64-any-unixy-elfytargets” compiler-team#885 (Zulip) - “use separate build directory for rust-analyzer to use” compiler-team#889 (Zulip)
- “Create
rustc_target::spec::Targetfrom a Builder” compiler-team#890 (Zulip) - “Run more tests for rustc_codegen_gcc in the CI” compiler-team#891 (Zulip)
- “Auto-create tracking issues for accepted MCPs” compiler-team#892 (Zulip)
- MCPs blocked on unresolved concerns
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 36 days ago)
- concern: path-to-stabilization
- “Rename “dylib” crate type to “rdylib” (keep old name but deprecate it), and maybe do the same for “staticlib” → “cstaticlib”” compiler-team#825 (Zulip) (last review activity: about 19 days ago)
- concern: needs-a-sufficiently-long-deprecation-timeline
- concern: broad-change-needs-tlang-buy-in-possibly-fcp
- concern: needs-a-blog-post
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: about 8 days ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: about 6 days ago)
- concern: proposal-wording
- “Promote
armv7-unknown-linux-musleabihfto tier 2 with host tools” compiler-team#888 (Zulip) (last review activity: about 7 days ago)- concern: lack-of-maintainers
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 36 days ago)
- Finalized FCPs (disposition merge)
- “Add
target_env = "macabi"andtarget_env = "sim"” rust#139451 - “Use lld by default on
x86_64-unknown-linux-gnustable” rust#140525
- “Add
- Other teams finalized FCPs
- “Allow
#[must_use]on associated types to warn on unused values in generic contexts” rust#142590 - “Stabilize
const_float_round_methods” rust#143604
- “Allow
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_syntaxestriggers, 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 aftercrt-static” rust#144143- Authored by Gelbpunkt
- Fixes P-high #144203,
-Ctarget-featureswere ignored aftercrt-static - Voting Zulip topic, positive
- No stable nominations for
T-compilerthis time.
- No beta nominations for
T-typesthis time. - No stable nominations for
T-typesthis time.
PRs S-waiting-on-team
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 53 T-compiler P-high issues
- 1 P-critical, 3 P-high, 0 P-medium, 3 P-low regression-from-stable-to-beta
- 0 P-critical, 2 P-high, 1 P-medium, 1 P-low regression-from-stable-to-nightly
- 0 P-critical, 26 P-high, 100 P-medium, 23 P-low regression-from-stable-to-stable
P-critical
- “Regression:
alignis ambiguous” rust#143834- This is fixed by #144080
- No
P-criticalissues forT-typesthis time.
P-high 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 aftercrt-static” rust#144203- Fixed by #144143
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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) | mean | range | count |
|---|---|---|---|
| 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
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “feat: add
succinct-zkvmos 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)
- cc: @Wesley Wiser (pending question?)
- “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