T-compiler Meeting Agenda 2025-08-14
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
- Stable MIR weekly meeting time:2025-08-15T17:00:00+02:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- No new proposals this time.
- 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: 10 months ago)
- “Compile UI tests as libraries by default” compiler-team#842 (Zulip) (last review activity: 5 months ago)
- “Unify ui test inline error annotation style” compiler-team#859 (Zulip) (last review activity: about 5 days ago)
- “Promote tier 3 riscv32 ESP-IDF targets to tier 2” compiler-team#864 (Zulip) (last review activity: 2 months ago)
- “Add support for specifying split-debuginfo=unpacked output directory” compiler-team#871 (Zulip) (last review activity: 3 months ago)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: about 20 days ago)
- “Experiment with replacing specialization in libcore with downcasting” compiler-team#904 (Zulip) (last review activity: about 20 days ago)
- Pending FCP requests (check your boxes!)
- merge: Begin enforcing Tier 2 target maintainer requirements (compiler-team#896)
- @|116266 @|119031 @|248906 @|426609 @_|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 @|426609 @_|353056
- no pending concerns
- merge: fix drop scope for
super letbindings withinif let(rust#145342)- @|116009 @|239881 @|116883 @|125270
- no pending concerns
- merge: Begin enforcing Tier 2 target maintainer requirements (compiler-team#896)
- Things in FCP (make sure you’re good with it)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: impl-at-mir-level
- concern: lose-debuginfo-data
- concern: inhibit-opts
- “Policy: Empower reviewers to reject burdensome PRs” compiler-team#893 (Zulip)
- “Proposal for a dedicated test suite for the parallel frontend” compiler-team#906 (Zulip)
- concern: name-a-specific-reason
- concern: can-we-just-enhance-ui-suite
- “const-eval: full support for pointer fragments” rust#144081
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- “Add Hotpatch flag” compiler-team#745 (Zulip)
- “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) - “Tier 3 target proposal: riscv64a23-unknown-linux-gnu” compiler-team#894 (Zulip)
- “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) - “Add JSON schema for target spec JSON” compiler-team#905 (Zulip)
- MCPs blocked on unresolved concerns
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: about 28 days ago)
- concern: proposal-wording
- “Promote
armv7-unknown-linux-musleabihfto tier 2 with host tools” compiler-team#888 (Zulip) (last review activity: about 29 days ago)- concern: lack-of-maintainers
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 57 days ago)
- concern: path-to-stabilization
- cc @Wesley Wiser can you check the MCP author reply?
- “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 40 days ago)
- concern: broad-change-needs-tlang-buy-in-possibly-fcp
- concern: needs-a-sufficiently-long-deprecation-timeline
- concern: needs-a-blog-post
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: about 29 days ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: about 28 days ago)
- Finalized FCPs (disposition merge)
- None
- Other teams finalized FCPs
- “Reject relaxed bounds inside associated type bounds (ATB)” rust#135331
- “
apply_member_constraints: fix placeholder check” rust#142071 - “Remove the
#[no_sanitize]attribute in favor of#[sanitize(xyz = "on|off")]” rust#142681 - “Check coroutine upvars in dtorck constraint” rust#144156
- “Upgrade semicolon_in_expressions_from_macros from warn to deny” rust#144369
- “Extract TraitImplHeader in AST/HIR” rust#144386
- “Stabilize loongarch32 inline asm” rust#144402
- “Add lint against integer to pointer transmutes” rust#144531
- “Stabilize
sse4aandtbmtarget features” rust#144542
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Ignore coroutine witness type region args in auto trait confirmation” rust#145194
- Authored by compiler-errors
- Voting Zulip topic: as suggested in comment by Boxy, we could decline this backport and instead let #145338 fix the regression
- So probably backport both #145194 and #145338 (see comment)
- :beta: “fix drop scope for
super letbindings withinif let” rust#145342- Authored by dianne
- Fixes two related p-critical regressions (#145328 and #145374)
- Voting Zulip topic in favor
- :stable: “fix drop scope for
super letbindings withinif let” rust#145342- Authored by dianne
- Voting Zulip topic
- Ongoing discussion about a dot release
- :beta:“Make sure to treat only param where clauses as inherent” rust#145262
- Authored by compiler-errors
- (No voting Zulip topic)
- Fixes #145185 (P-medium but maybe wrong assessment on my side)
- :stable:“Make sure to treat only param where clauses as inherent” rust#145262
- Authored by compiler-errors
- @_scottmcm makes a good argument (comment) for backporting
PRs S-waiting-on-team
- “Fix backtraces with
-C panic=aborton linux; emit unwind tables by default” rust#143613- this is RFC-approved so should it go back to the author? (comment)
- Issues in progress or waiting on other teams
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 54 T-compiler P-high issues
- 0 P-critical, 1 P-high, 1 P-medium, 4 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 0 P-medium, 0 P-low regression-from-stable-to-nightly
- 1 P-critical, 24 P-high, 100 P-medium, 23 P-low regression-from-stable-to-stable
P-critical
- “
pin!()has incorrect/unexpected drop order inside if-let.” rust#145328- resolved by #145342
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “E0275 is occuring in beta 1.90.0-beta.1 but not in stable 1.89.0” rust#145151
- maybe resolved by #145194 and probably a follow up patch (see comment and previous one)
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
This week saw almost no regressions, while we got some nice wins. One of them was #143684, which updated the LLVM version used by the Rust compiler to 21.
Triage done by @kobzol. Revision range: 07b7dc90..6355cd39
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.2%, 0.8%] | 3 |
| Regressions (secondary) | 0.7% | [0.1%, 1.5%] | 8 |
| Improvements (primary) | -1.5% | [-22.8%, -0.2%] | 219 |
| Improvements (secondary) | -2.9% | [-18.8%, -0.1%] | 256 |
| All (primary) | -1.5% | [-22.8%, 0.8%] | 222 |
2 Regressions, 2 Improvements, 9 Mixed; 5 of them in rollups 37 artifact comparisons made in total
Regressions
Revert #143906 #145116 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.4% | [0.2%, 0.6%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | - | - | 0 |
- The tiny regressions were noise.
- Marked as triaged.
Rollup of 7 pull requests #145236 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.5%] | 6 |
| Regressions (secondary) | 0.4% | [0.1%, 0.5%] | 17 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.2%, 0.5%] | 6 |
- Tiny doc-only regressions caused by adding more const to the standard library.
- Marked as triaged.
Improvements
Simplify dead code lint #144863 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.0% | [0.0%, 0.0%] | 1 |
| Improvements (primary) | -0.5% | [-1.5%, -0.1%] | 82 |
| Improvements (secondary) | -0.3% | [-0.6%, -0.1%] | 12 |
| All (primary) | -0.5% | [-1.5%, -0.1%] | 82 |
Implement stability_implications without a visitor. #144873 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.3%, -0.1%] | 41 |
| Improvements (secondary) | -0.9% | [-3.0%, -0.2%] | 26 |
| All (primary) | -0.3% | [-0.3%, -0.1%] | 41 |
Mixed
Update to LLVM 21 #143684 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.2%, 0.9%] | 5 |
| Regressions (secondary) | 1.3% | [0.4%, 1.8%] | 19 |
| Improvements (primary) | -1.3% | [-23.1%, -0.2%] | 216 |
| Improvements (secondary) | -2.7% | [-19.0%, -0.1%] | 266 |
| All (primary) | -1.3% | [-23.1%, 0.9%] | 221 |
- Improvements outweigh the regressions.
- Marked as triaged.
Preserve the .debug_gdb_scripts section #143679 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 103.7% | [55.2%, 152.2%] | 2 |
| Regressions (secondary) | 0.5% | [0.5%, 0.6%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.8% | [-4.6%, -0.0%] | 6 |
| All (primary) | 103.7% | [55.2%, 152.2%] | 2 |
- This change probably caused some incremental query invalidations.
- It was reverted in #145014.
- Marked as triaged.
Rollup of 15 pull requests #145020 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.2%] | 2 |
| Regressions (secondary) | 0.3% | [0.1%, 0.7%] | 4 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.0% | [-0.0%, -0.0%] | 1 |
| All (primary) | 0.2% | [0.1%, 0.2%] | 2 |
- The regression is genuine, but so small that it doesn’t seem worth it to investigate it further.
- Marked as triaged.
Revert “Preserve the .debug_gdb_scripts section” #145014 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 2.8% | [0.6%, 4.8%] | 4 |
| Improvements (primary) | -48.0% | [-60.4%, -35.6%] | 2 |
| Improvements (secondary) | -0.5% | [-0.5%, -0.5%] | 3 |
| All (primary) | -48.0% | [-60.4%, -35.6%] | 2 |
- Revert of #143679.
- Marked as triaged.
Rollup of 19 pull requests #145043 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.2%, 0.5%] | 4 |
| Regressions (secondary) | 0.3% | [0.1%, 0.5%] | 8 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 2 |
| All (primary) | 0.4% | [0.2%, 0.5%] | 4 |
- The regressions look genuine, but also are tiny.
- Marked as triaged.
Rollup of 9 pull requests #145074 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.8% | [0.1%, 4.3%] | 126 |
| Regressions (secondary) | 0.6% | [0.1%, 1.5%] | 39 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.8% | [-2.9%, -0.1%] | 9 |
| All (primary) | 0.8% | [0.1%, 4.3%] | 126 |
Rollup of 19 pull requests #145077 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 3 |
| Improvements (primary) | -1.0% | [-1.0%, -1.0%] | 1 |
| Improvements (secondary) | -0.4% | [-0.6%, -0.2%] | 12 |
| All (primary) | -1.0% | [-1.0%, -1.0%] | 1 |
- Some of the improvements were likely noise, but overall it was a wash.
- Marked as triaged.
Revert “Port #[allow_internal_unsafe] to the new attribute system” #145086 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 2.8% | [2.6%, 2.9%] | 6 |
| Improvements (primary) | -0.8% | [-4.1%, -0.1%] | 121 |
| Improvements (secondary) | -0.7% | [-1.4%, -0.1%] | 39 |
| All (primary) | -0.8% | [-4.1%, -0.1%] | 121 |
- Revert of #144857.
- Marked as triaged.
Stop using uadd.with.overflow #145144 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 7 |
| Improvements (secondary) | -0.5% | [-0.8%, -0.2%] | 14 |
| All (primary) | -0.2% | [-0.3%, 0.2%] | 8 |
- More improvements than regressions.
- Already marked as triaged.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Allow
&raw [mut | const]for union field in safe” rust#141469 (last review activity: 2 months ago)- cc @Michael (compiler-errors) Goulet
- “diagnostics: hide expansion of builtin-like macros” rust#141314 (last review activity: 2 months ago)
- cc @Vadim Petrochenkov
- “error out when
repr(align)exceeds COFF limit” rust#142638 (last review activity: about 57 days ago)- cc: @Jubilee
Next meetings’ agenda draft: hackmd link