T-compiler Meeting Agenda 2025-12-18
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-12-18T13:00:00+02:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Introduce a tier-3
wasm32-componenttarget” compiler-team#948 (Zulip) - “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) - “Add
-Z msrv=xx.yy.zzflag” compiler-team#950 (Zulip) - “Create new Tier 2 targets with sanitizers enabled by default” compiler-team#951 (Zulip)
- “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) - “Tier 3 targets proposal: LoongArch UEFI” compiler-team#953 (Zulip)
- “Introduce a tier-3
- Old MCPs (not seconded, take a look)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 4 months ago)
- “Promote tvOS/watchOS/visionOS to Tier 2” compiler-team#918 (Zulip) (last review activity: 2 months ago)
- “Rename
hexagon-unknown-{none-elf,linux-musl}targets” compiler-team#921 (Zulip) (last review activity: 2 months ago) - “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) (last review activity: 2 months ago) - “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: 2 months ago)
- “Parse unstable keywords for experimental syntax” compiler-team#945 (Zulip) (last review activity: about 20 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: 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)
- no pending checkboxes
- concerns: crater run results (by tmandry)
- merge: Support importing path-segment keyword with renaming (rust#146972)
- @_|116009
- concerns: documentation (by traviscross) consistent-axioms (by nikomatsakis)
- merge: Stabilize ppc inline assembly (rust#147996)
- @|116009 @|116883 @_|125270
- no pending concerns
- merge: Stabilize the
supertrait_item_shadowingfeature (rust#148605)- @|116009 @|124288 @|326176 @|232957
- concerns: pending-reference-pr (by traviscross)
- merge: const-eval: always do mem-to-mem copies if there might be padding involved (rust#148967)
- @|116009 @|239881 @_|125270
- no pending concerns
- merge: resolve: Report more visibility-related early resolution ambiguities for imports (rust#149596)
- @|116009 @|239881 @_|125270
- no pending concerns
- merge: Do not deduplicate captured args while expanding
format_args!(rust#149926)- @|116009 @|239881 @|116883 @|125270
- no pending concerns
- merge: Promote
- 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: inhibit-opts
- concern: lose-debuginfo-data
- “Promote tier 3 riscv32 ESP-IDF targets to tier 2” compiler-team#864 (Zulip)
- concern: documentation
- concern: continued-maintainer-interest
- “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
- “Destabilise target-spec-json” compiler-team#944 (Zulip)
- concern: fcp
- “Allow combining
--help -C help -Z help -W helpin one invocation” compiler-team#954 (Zulip)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- “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)
- MCPs blocked on unresolved concerns
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 6 months 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 34 days ago)
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 2 months ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 5 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 2 months ago)- concern: nonsystematic-breakage
- concern: version-churn
- concern: why-not-ports-rustc
- “Remove diagnostic translation infrastructure” compiler-team#924 (Zulip) (last review activity: 2 months ago)
- concern: people-like-structs
- “Doc comments and attributes on macro arms” compiler-team#935 (Zulip) (last review activity: about 41 days ago)
- concern: lang
- “Allow using prebuilt sanitizer libraries” compiler-team#943 (Zulip) (last review activity: about 5 days ago)
- concern: why-not-third-party-tool
- concern: what-about-combinatorics
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 6 months ago)
- 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
- “Stabilize
const_mul_add” rust#148052 - “Better closure requirement propagation.” rust#148329
- “don’t normalize where-clauses when checking well-formedness” rust#148477
- “misc coercion cleanups and handle safety correctly” rust#148602
- “const validation: remove check for mutable refs in final value of const” rust#148746
- “Stabilize
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Update to LLVM 21.1.8” rust#150057
- Authored by nikic
- A small patch release, diff: https://github.com/rust-lang/rust/pull/150057#issuecomment-3665487007
- Voting Zulip topic, in favor
- 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
- 58 T-compiler P-high issues
- 0 P-critical, 0 P-high, 0 P-medium, 0 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, 33 P-high, 100 P-medium, 26 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
This week we saw several regressions, partly from the compiler doing more work. The remaining regressions are being investigated.
Triage done by @kobzol. Revision range: 55495234..21ff67df
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.1%, 5.1%] | 40 |
| Regressions (secondary) | 0.8% | [0.0%, 3.0%] | 63 |
| Improvements (primary) | -0.7% | [-1.5%, -0.1%] | 35 |
| Improvements (secondary) | -1.0% | [-7.4%, -0.0%] | 73 |
| All (primary) | -0.1% | [-1.5%, 5.1%] | 75 |
3 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups 36 artifact comparisons made in total
Regressions
resolve: Preserve ambiguous glob reexports in crate metadata #147984 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.5%] | 24 |
| Regressions (secondary) | 0.3% | [0.2%, 0.7%] | 13 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
| All (primary) | 0.3% | [0.1%, 0.5%] | 24 |
- The compiler is doing more work after this change, and this work should unblock parallelizing name resolution and macro expansion in the future.
- Asked on the PR if something can be done about the regression.
Rollup of 9 pull requests #149891 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.9% | [0.5%, 7.6%] | 10 |
| Regressions (secondary) | 1.2% | [0.2%, 2.2%] | 2 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 1.9% | [0.5%, 7.6%] | 10 |
- The regression in doc builds was caused by #142380.
- Continuing discussion on the PR.
Externally implementable items #146348 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.6% | [0.6%, 0.7%] | 2 |
| Regressions (secondary) | 0.3% | [0.1%, 0.8%] | 35 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.0% | [-0.1%, -0.0%] | 2 |
| All (primary) | 0.6% | [0.6%, 0.7%] | 2 |
- The regressions are only on the tiniest crates, and is quite small.
- Marked as triaged.
Improvements
Remove unwraps from metadata decoding: introduce BlobDecoder #149455 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.4%, -0.1%] | 8 |
| Improvements (secondary) | -0.4% | [-1.4%, -0.1%] | 28 |
| All (primary) | -0.2% | [-0.4%, -0.1%] | 8 |
Don’t leak sysroot crates through dependencies #149273 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -2.9% | [-6.7%, -0.1%] | 11 |
| All (primary) | - | - | 0 |
Mixed
std: Use more unix.rs code on WASI targets #147572 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions (secondary) | 0.3% | [0.1%, 0.5%] | 2 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.0% | [-0.0%, -0.0%] | 1 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 3 |
- Except for the tiny helloworld doc regression, this seems to be noise.
- Marked as triaged.
Revert “early return on duplicate span lowerings” #149757 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
| Improvements (primary) | -0.3% | [-0.7%, -0.1%] | 94 |
| Improvements (secondary) | -0.4% | [-0.8%, -0.0%] | 107 |
| All (primary) | -0.3% | [-0.7%, -0.1%] | 94 |
- This revert fixed a previous performance regression from #149060.
- Marked as triaged.
Rollup of 5 pull requests #149818 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.3%] | 18 |
| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 13 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.4% | [-0.6%, -0.3%] | 3 |
| All (primary) | 0.2% | [0.1%, 0.3%] | 18 |
- Small regression caused by #149664, continuing discussion on that PR.
- Not marking as triaged yet.
Port doc attributes to new attribute API #149645 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | 1.4% | [0.1%, 3.1%] | 18 |
| Improvements (primary) | -0.6% | [-1.3%, -0.2%] | 36 |
| Improvements (secondary) | -0.6% | [-1.2%, -0.1%] | 32 |
| All (primary) | -0.6% | [-1.3%, 0.2%] | 37 |
- More improvements than regressions.
- Already marked as triaged.
Overhaul filename handling for cross-compiler consistency #149709 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.2%, 1.1%] | 6 |
| Regressions (secondary) | 0.6% | [0.0%, 2.2%] | 31 |
| Improvements (primary) | -0.6% | [-1.5%, -0.1%] | 12 |
| Improvements (secondary) | -0.3% | [-0.6%, -0.2%] | 4 |
| All (primary) | -0.2% | [-1.5%, 1.1%] | 18 |
- The results are a bit all over the place, but overall it’s a wash. Some tiny improvements are expected to be gained from a follow-up in #149989.
- Marked as triaged.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “RISC-V: Implement (Zkne or Zknd) intrinsics correctly” rust#146798 (last review activity: 2 months ago)
- cc: @Amanieu (I wonder if this comment is relevant)
- “Do not use dlltool to create DLL Import Libraries for Windows” rust#147274 (last review activity: 2 months ago)
- cc: @Wesley Wiser
- “cg_llvm: More preparation for moving FFI bindings to
rustc_llvm” rust#147430 (last review activity: 2 months ago)- cc: (autoassigned) @Sparrow Li
- “Uplift module inspect from clippy” rust#147599 (last review activity: 2 months ago)
- cc: (autoassigned) @Esteban Küber (fixes a P-low issue …)
Next meeting(s) when?
Next two Thursdays fall exactly on Dec, 25th and Jan, 1st :-)