T-compiler Meeting Agenda 2025-12-04
Announcements
- Next week Rust 1.921 release (blog post)
- 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).
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Introduce a tier-3
wasm32-componenttarget” compiler-team#948 (Zulip)
- “Introduce a tier-3
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “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 20 days ago)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 5 months ago)
- concern: path-to-stabilization
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: about 58 days ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 4 months ago)
- concern: proposal-wording
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 4 months ago)
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: about 56 days ago)- concern: nonsystematic-breakage
- concern: version-churn
- concern: why-not-ports-rustc
- “Promote tvOS/watchOS/visionOS to Tier 2” compiler-team#918 (Zulip) (last review activity: about 56 days ago)
- “Rename
hexagon-unknown-{none-elf,linux-musl}targets” compiler-team#921 (Zulip) (last review activity: about 49 days ago) - “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) (last review activity: about 49 days ago) - “Remove diagnostic translation infrastructure” compiler-team#924 (Zulip) (last review activity: about 48 days ago)
- concern: people-like-structs
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: about 48 days ago)
- “Doc comments and attributes on macro arms” compiler-team#935 (Zulip) (last review activity: about 27 days ago)
- concern: lang
- “Allow using prebuilt sanitizer libraries” compiler-team#943 (Zulip) (last review activity: about 6 days ago)
- concern: why-not-third-party-tool
- concern: what-about-combinatorics
- “Parse unstable keywords for experimental syntax” compiler-team#945 (Zulip) (last review activity: about 6 days ago)
- Pending FCP requests (check your boxes!)
- merge: Promote
riscv64a23-unknown-linux-gnuto Tier 2 with host tools (compiler-team#910)- @|125250 @|119031 @|426609 @|116122 @|116118 @|259697 @_|444933
- concerns: no-hardware-available (by davidtwco) unclear-justification (by jieyouxu)
- merge: Destabilise target-spec-json (compiler-team#944)
- @|119031 @|116118 @_|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: Stabilize stack-protector (rust#146369)
- @|116266 @|119031 @|426609 @|444933
- concerns: mitigation-enforcement (by Noratrieb)
- merge: Revert “Do not check privacy for RPITIT.” (rust#146470)
- @|116009 @|116883 @_|125270
- concerns: is my understanding correct (by tmandry)
- merge: Stabilize the
supertrait_item_shadowingfeature (rust#148605)- @|116009 @|124288 @|326176 @|232957
- concerns: pending-reference-pr (by traviscross) rename-lints (by traviscross)
- merge: Promote
- Things in FCP (make sure you’re good with it)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: lose-debuginfo-data
- concern: inhibit-opts
- concern: impl-at-mir-level
- “Promote tier 3 riscv32 ESP-IDF targets to tier 2” compiler-team#864 (Zulip)
- concern: continued-maintainer-interest
- concern: documentation
- “Proposal for a dedicated test suite for the parallel frontend” compiler-team#906 (Zulip)
- concern: can-we-just-enhance-ui-suite
- concern: name-a-specific-reason
- “Promote powerpc64-unknown-linux-musl to tier 2 with host tools” compiler-team#946 (Zulip)
- “Use
annotate-snippetsas the default emitter” compiler-team#947 (Zulip) - “Not linting irrefutable_let_patterns on let chains” rust#146832
- “Warn on codegen attributes on required trait methods” rust#148756
- “NFC normalize lifetime identifiers” rust#149192
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “Update bundled musl to 1.2.5” rust#142682
- “Fix backtraces with
-C panic=aborton linux; emit unwind tables by default” rust#143613 - “Stabilize
-Zremap-path-scope” rust#147611
- Other teams finalized FCPs
- “misc coercion cleanups and handle safety correctly” rust#148602
- “const validation: remove check for mutable refs in final value of const” rust#148746
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “CTFE: avoid emitting a hard error on generic normalization failures” rust#149501
- Authored by lcnr (thanks!!)
- Fixes #149081, a P-critical regression, see Zulip prioritization thread
- Voting Zulip topic
- Author comments that this fix a bit iffy but together with the downstream patch from the Py03 maintainer, but in the short term this should be ok
- In addition/alternative we can revert #149081
- 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-t-compiler
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 57 T-compiler P-high issues
- 0 P-critical, 1 P-high, 5 P-medium, 1 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 1 P-medium, 1 P-low regression-from-stable-to-nightly
- 0 P-critical, 31 P-high, 100 P-medium, 25 P-low regression-from-stable-to-stable
P-critical
- No
P-criticalissues forT-compilerthis time.
- No
P-criticalissues forT-typesthis time.
P-high regressions
- No
P-highbeta regressions this time.
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
A fairly quiet week overall, despite a slightly higher than usual amount of merged PRs.
Triage done by @simulacrum. Revision range: b64df9d1..eca9d93f
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.2%, 1.0%] | 152 |
| Regressions (secondary) | 0.7% | [0.1%, 2.4%] | 98 |
| Improvements (primary) | -0.3% | [-1.3%, -0.1%] | 23 |
| Improvements (secondary) | -0.3% | [-1.1%, -0.1%] | 53 |
| All (primary) | 0.4% | [-1.3%, 1.0%] | 175 |
3 Regressions, 1 Improvement, 4 Mixed; 3 of them in rollups 43 artifact comparisons made in total
Regressions
Rollup of 12 pull requests #149351 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 1 |
| Regressions (secondary) | 0.8% | [0.3%, 1.3%] | 8 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.1% | [0.1%, 0.1%] | 1 |
This regressed due to #147936 which added intrinsics for offload on the large-workspace benchmark. It’s not clear why this had such a large effect though.
Rollup of 6 pull requests #149387 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 1.7% | [0.1%, 2.6%] | 4 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | - | - | 0 |
This regressed some next-solver benchmarks. Root cause not investigated but surface level inspection suggests this is a bug fix so probably warranted, marked as triaged.
Rollup of 3 pull requests #149462 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.1%, 1.0%] | 160 |
| Regressions (secondary) | 0.6% | [0.1%, 2.0%] | 82 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.5% | [-0.5%, -0.5%] | 1 |
| All (primary) | 0.5% | [0.1%, 1.0%] | 160 |
This is due to ongoing work to support open APIs, see comment with analysis.
Improvements
Remove context-dependent ! fallback #148871 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.4%, -0.1%] | 38 |
| Improvements (secondary) | -0.3% | [-0.5%, -0.1%] | 40 |
| All (primary) | -0.3% | [-0.4%, -0.1%] | 38 |
Mixed
v0 mangling for std on nightly #149148 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.8% | [0.6%, 0.8%] | 5 |
| Regressions (secondary) | 0.5% | [0.0%, 0.9%] | 23 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-1.1%, -0.1%] | 5 |
| All (primary) | 0.8% | [0.6%, 0.8%] | 5 |
Expected regressions due to binary size increases, see comment.
Fix issue with callsite inline attribute not being applied sometimes. #147404 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.3%, 0.4%] | 2 |
| Regressions (secondary) | 0.2% | [0.1%, 0.3%] | 5 |
| Improvements (primary) | -0.1% | [-0.1%, -0.1%] | 2 |
| Improvements (secondary) | -0.2% | [-0.4%, -0.1%] | 22 |
| All (primary) | 0.1% | [-0.1%, 0.4%] | 4 |
Mixed results. Arguably a correctness fix, so marking as triaged. Regressions are due to doing a bit more work in codegen.
Compute jump threading opportunities in a single pass #142821 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.1%, 0.8%] | 18 |
| Regressions (secondary) | 0.2% | [0.1%, 1.0%] | 19 |
| Improvements (primary) | -0.7% | [-1.4%, -0.3%] | 8 |
| Improvements (secondary) | -0.3% | [-0.8%, -0.1%] | 27 |
| All (primary) | 0.1% | [-1.4%, 0.8%] | 26 |
Mixed results as expected from MIR opt changes. Generally only a slight regression and the PR has other benefits (simplification of code and what looks like binary size wins).
Move even more early buffered lints to dyn lint diagnostics #147634 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.5% | [-0.9%, -0.1%] | 13 |
| All (primary) | - | - | 0 |
Only a single secondary run regressed (ucd) so while it doesn’t look spurious I don’t think it merits investigation, especially coupled with some improvements. Marking as triaged.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Next meetings’ agenda draft: hackmd link