T-compiler Meeting Agenda 2026-02-19
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).
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)
- “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: 3 months ago)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 6 months ago)
- “Rename
hexagon-unknown-{none-elf,linux-musl}targets” compiler-team#921 (Zulip) (last review activity: 4 months ago) - “Parse unstable keywords for experimental syntax” compiler-team#945 (Zulip) (last review activity: 2 months ago)
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 20 days ago) - “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 20 days ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: about 20 days ago) - “Tier 3 targets proposal: LoongArch UEFI” compiler-team#953 (Zulip) (last review activity: about 20 days ago)
- “Emit retags in codegen” compiler-team#958 (Zulip) (last review activity: about 20 days ago)
- “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: about 20 days ago)
Pending FCP requests (check your boxes!)
- merge: Promote aarch64-unknown-freebsd to Tier 2 with host tools (compiler-team#961)
- @|116266 @|124288 @|119031 @|116122 @_|353056
- no pending concerns
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- @|116266 @|124288 @|123586 @|125250 @|119031 @|248906 @|116122 @|116118 @|343125 @|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: Make trait refs & assoc ty paths properly induce trait object lifetime defaults (rust#129543)
- @|116009 @|326176 @|216206 @|232957
- no pending concerns
- merge: Stabilize stack-protector (rust#146369)
- @|116266 @|119031 @|426609 @|444933
- concerns: mitigation-enforcement (by Noratrieb)
- merge: Stabilize the
supertrait_item_shadowingfeature (rust#148605)- @|124288 @|326176
- concerns: implementation-confidence (by BoxyUwU) inconsistent-name-res-semantics (by BoxyUwU)
- merge: rustc: Stop passing
--allow-undefinedon wasm targets (rust#149868)- @|116266 @|124288 @|119031 @|353056
- no pending concerns
- “Implement lint for black_boxing ZSTs” rust#150037
- merge: switch to v0 mangling by default on stable (rust#151994)
- @|116266 @|123586 @|119031 @|116122 @_|353056
- no pending concerns
- merge: Promote aarch64-unknown-freebsd to Tier 2 with host tools (compiler-team#961)
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
- “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: name-a-specific-reason
- concern: can-we-just-enhance-ui-suite
- “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) - “Introduce a tier-3
wasm32-componenttarget” compiler-team#948 (Zulip) - “Remove the translation
-Zoptions” compiler-team#967 (Zulip) - “Add a
--min-recursion-limitcommand line flag” compiler-team#969 (Zulip) - “Place-less cg_ssa intrinsics” compiler-team#970 (Zulip)
- “Inhibit all-absent-variant optimization for all enum reprs that inhibit layout optimization, not just repr(C).” rust#146989
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
Accepted MCPs
- “For
nvptx64, drop old CPUs and ISAs - drop support fortarget-cpu< SM 7.0 and PTX ISA < 7.0” compiler-team#965 (Zulip)
- “For
MCPs blocked on unresolved concerns
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 8 months ago)
- concern: path-to-stabilization
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 4 months ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 7 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 4 months ago)- concern: nonsystematic-breakage
- concern: why-not-ports-rustc
- concern: version-churn
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: about 5 days ago)
- concern: infra-and-bootstrap-burden
- concern: we-like-using-the-features-we-ship
- “Doc comments and attributes on macro arms” compiler-team#935 (Zulip) (last review activity: 3 months ago)
- concern: lang
- “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: about 20 days ago)- concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: about 6 days ago)- concern: fragmentation
- concern: complexity
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 8 months ago)
Finalized FCPs (disposition merge)
- “
-Znext-solverRemove the forced ambiguity hack from search graph” rust#149904
- “
Other teams finalized FCPs
- “Stabilize Frontmatter” rust#148051
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Consider captures to be used by closures that unwind” rust#152103
- Authored by eggyal
- Voting Zulip topic in favor
- Fixes #152079, p-high regression from #142390
- :beta: “Fix feature gating for new
try bikeshedexpressions” rust#152519- Authored by scottmcm
- Voting Zulip topic, in favor
- PR now merged, fixes p-high #152501
- :beta: “reject inline const patterns pre-expansion” rust#152548
- Authored by dianne
- Voting Zulip topic, in favor
- partial revert changes in #149667 to fix #152499
- :beta: “layout_of unexpected rigid alias delayed bug” rust#152575
- Authored by lcnr
- Voting Zulip topic, in favor (already discussed lasat week?)
- fixes a P-high #152545
- :beta: “resolve: Disable an assert that no longer holds” rust#152711
- Authored by petrochenkov
- Voting Zulip topic, in favor
- :stable: “layout: handle rigid aliases without params” rust#151814
- Authored by lcnr
- Voting Zulip topic
- mentioned here for completeness, discussed last week (comment), we agreed it might get into a
.2in case is planned
- 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
- 60 T-compiler P-high issues
- 0 P-critical, 3 P-high, 3 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 34 P-high, 100 P-medium, 29 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
Several pull requests introduced (usually very small) regressions across the board this week. On the
other hand, #151380 provided a nice performance win in the inference engine.
I would also like to bring attention to #152375,
which improved the parallel frontend. It is not shown in this report, because we don’t yet have
many benchmarks for the parallel frontend, but this PR seemingly improved the check (wall-time)
performance with multiple frontend threads on several real-world crates by 5-10%!
Triage done by @kobzol. Revision range: 39219ceb..3c9faa0d
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.2%, 3.1%] | 96 |
| Regressions (secondary) | 1.1% | [0.0%, 5.7%] | 62 |
| Improvements (primary) | -0.4% | [-0.9%, -0.2%] | 8 |
| Improvements (secondary) | -2.6% | [-7.0%, -0.0%] | 45 |
| All (primary) | 0.6% | [-0.9%, 3.1%] | 104 |
2 Regressions, 0 Improvements, 9 Mixed; 4 of them in rollups 36 artifact comparisons made in total
Regressions
Rollup of 17 pull requests #152562 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 11 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | - | - | 0 |
- Noise that got reverted in a follow-up PR.
- Already marked as triaged.
replace box_new with lower-level intrinsics #148190 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.8% | [0.5%, 1.9%] | 8 |
| Regressions (secondary) | 1.8% | [0.4%, 5.5%] | 24 |
| Improvements (primary) | -0.8% | [-0.8%, -0.8%] | 1 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
| All (primary) | 0.6% | [-0.8%, 1.9%] | 9 |
- Small performance hit across the board caused by refactoring how Box works internally.
- Was deemed acceptable pre-merge.
- Marked as triaged.
Mixed
Rollup of 12 pull requests #152399 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions (secondary) | 0.8% | [0.1%, 1.4%] | 26 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.1%] | 8 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 3 |
- The largest regressions seem to be caused by #152327.
- That PR fixed some compiler bugs, so the regression on a secondary benchmarks seems justifiable.
- Marked as triaged.
Update mgca to use type const syntax instead of the #[type_const] attribute. #152324 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.1%, 0.7%] | 18 |
| Regressions (secondary) | 0.5% | [0.0%, 1.7%] | 13 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.0%] | 4 |
| All (primary) | 0.4% | [0.1%, 0.7%] | 18 |
- It is unclear whether the regressions were expected or not.
- Asked the reviewer to follow up.
- Not marking as triaged yet.
Update to LLVM 22.1.0-rc3 #152428 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | 0.1% | [0.0%, 0.2%] | 4 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.5%, -0.1%] | 10 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 1 |
- A few tiny changes that got over the noise threshold, but overall a wash.
- Marked as triaged.
Rollup of 7 pull requests #152506 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | 0.2% | [0.1%, 0.2%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.1% | [-0.2%, -0.1%] | 2 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 1 |
- Very small regressions across the board, but I don’t think it’s worth it to dig deeper.
- Marked as triaged.
Start using pattern types in libcore (NonZero and friends) #148537 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.9% | [0.1%, 3.8%] | 12 |
| Regressions (secondary) | 2.2% | [0.1%, 3.6%] | 4 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 2 |
| All (primary) | 1.9% | [0.1%, 3.8%] | 12 |
- The regression was deemed acceptable pre-merge, and the post-merge results correspond to the previous perf. runs.
- Marked as triaged.
Make operational semantics of pattern matching independent of crate and module #150681 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.6% | [0.1%, 1.1%] | 7 |
| Regressions (secondary) | 0.2% | [0.1%, 0.2%] | 12 |
| Improvements (primary) | -2.6% | [-2.6%, -2.6%] | 1 |
| Improvements (secondary) | -2.3% | [-2.3%, -2.3%] | 1 |
| All (primary) | 0.2% | [-2.6%, 1.1%] | 8 |
- A few small regressions across the board, mainly in
docbuilds, the rest of the profiles are a wash. Given the change made here, I suppose the perf. regression is expected. - Marked as triaged.
Rollup of 7 pull requests #152632 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.1%, 0.8%] | 6 |
| Regressions (secondary) | 0.4% | [0.1%, 0.8%] | 3 |
| Improvements (primary) | -0.5% | [-1.0%, -0.2%] | 3 |
| Improvements (secondary) | -1.0% | [-2.0%, -0.5%] | 5 |
| All (primary) | 0.1% | [-1.0%, 0.8%] | 9 |
- Performance-wise it’s a wash.
- Marked as triaged.
Shallow resolve ty and const vars to their root vars #151380 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 4 |
| Improvements (primary) | -0.3% | [-0.4%, -0.1%] | 14 |
| Improvements (secondary) | -2.7% | [-7.1%, -0.1%] | 50 |
| All (primary) | -0.3% | [-0.4%, -0.1%] | 14 |
- Many more wins than losses.
- Marked as triaged.
Big query system cleanups #152636 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 10 |
| Regressions (secondary) | 0.2% | [0.1%, 0.3%] | 9 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.4% | [-0.4%, -0.3%] | 4 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 10 |
- The small performance regressions were investigated and deemed to be caused mostly by inlining perturbations.
- 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
- “Add inline asm support for amdgpu” rust#149793 (last review activity: 2 months ago)
- this has been bouncing around for a while and landed on @Amanieu d’Antras
- “Implement
-Z allow-partial-mitigations(RFC 3855)” rust#149357 (last review activity: 2 months ago)- cc @Ramon de C Valle
- “Implement method signature suggestion for trait mismatches error” rust#149027 (last review activity: 2 months ago)
- cc: @Mads Marquart
Next meetings’ agenda draft: hackmd link