T-compiler Meeting Agenda 2026-03-12
Announcements
- Discussion about a possible 1.94.1 (but nothing from T-compiler)
- 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 time:2026-03-13T16:00:00+01: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)
- “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: 7 months ago)
- “Rename
hexagon-unknown-{none-elf,linux-musl}targets” compiler-team#921 (Zulip) (last review activity: 4 months ago) - “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 41 days ago) - “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 41 days ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: about 41 days ago) - “Tier 3 targets proposal: LoongArch UEFI” compiler-team#953 (Zulip) (last review activity: about 41 days ago)
- “Emit retags in codegen” compiler-team#958 (Zulip) (last review activity: about 41 days ago)
- “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: about 41 days ago)
Pending FCP requests (check your boxes!)
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- @|124288 @|123586 @|125250 @|119031 @_|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 @|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)
- “Implement lint for black_boxing ZSTs” rust#150037
- merge: WF checks on closure arguments. (rust#151510)
- @|124288 @|326176 @_|232957
- concerns: jobsteal crater regression fix (by lcnr)
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
Things in FCP (make sure you’re good with it)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: inhibit-opts
- concern: lose-debuginfo-data
- concern: impl-at-mir-level
- “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) - “Parse unstable keywords for experimental syntax” compiler-team#945 (Zulip)
- “Promote aarch64-unknown-freebsd to Tier 2 with host tools” compiler-team#961 (Zulip)
- “Remove -Csoft-float” compiler-team#971 (Zulip)
- “allow
incomplete_featuresin UI tests” compiler-team#974 (Zulip) - “Add
-Zsanitizer=kernel-hwaddress” compiler-team#975 (Zulip) - “rustc: Stop passing
--allow-undefinedon wasm targets” rust#149868 - “switch to v0 mangling by default on stable” rust#151994
- “privacy: Fix type privacy holes when it doesn’t cause too much breakage” rust#152543
- “Remove
ATTRIBUTE_ORDER” rust#153041
Accepted MCPs
- “Remove soft_unstable” compiler-team#972 (Zulip)
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: 5 months ago)
- concern: wont-stop-target-names-from-proliferating
- “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: 5 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 26 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: 4 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 41 days ago) - concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: about 27 days ago) - concern: fragmentation
- concern: complexity
Finalized FCPs (disposition merge)
- None
Other teams finalized FCPs
- “Always make tuple elements a coercion site” rust#147834
- “Stabilize Frontmatter” rust#148051
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Don’t look for non-type-level assoc consts when checking trait object types” rust#153738
- Authored by fmease
- Voting Zulip topic
- both issue and PR just opened, we can review next week
- :beta: “Don’t add empty target features for target-cpu=native on macOS” rust#153763
- Authored by nikic
- Fixes #153397 (P-critical, in beta), miscompile on mac M5/M4 (and with different flags on M1 as well)
- Voting Zulip topic, PR just opened but seems to be a good backport candidate
- 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
- 1 T-compiler P-critical issues
- 60 T-compiler P-high issues
- 1 P-critical, 1 P-high, 1 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, 35 P-high, 100 P-medium, 29 P-low regression-from-stable-to-stable
P-critical
- “[ICE]: LLVM ERROR “Broken module” with -C target-cpu=native on aarch64-apple-darwin (Apple M5, LLVM 22.1.0)” rust#153397
- Fixed by #153763 (see backports)
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “1.95 beta regression affecting old versions of
bitvec: “… is not dyn compatible”” rust#153731- Just opened, waiting for feedback
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
Almost no regressions this week, while there was a handful of performance improvements caused by the ongoing refactoring of the compiler query system. The largest one was from #153521.
Triage done by @kobzol. Revision range: ddd36bd5..3945997a
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.4%, 0.5%] | 3 |
| Regressions (secondary) | 0.6% | [0.1%, 1.2%] | 8 |
| Improvements (primary) | -0.9% | [-2.5%, -0.1%] | 110 |
| Improvements (secondary) | -0.8% | [-2.7%, -0.1%] | 77 |
| All (primary) | -0.9% | [-2.5%, 0.5%] | 113 |
0 Regressions, 6 Improvements, 3 Mixed; 5 of them in rollups 31 artifact comparisons made in total
Improvements
Remove tls::with_related_context. #153316 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.2%, -0.1%] | 5 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.0%] | 21 |
| All (primary) | -0.2% | [-0.2%, -0.1%] | 5 |
Get rid of QueryVTable::call_query_method_fn #153387 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 15 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 5 |
| All (primary) | -0.3% | [-0.3%, -0.2%] | 15 |
Rollup of 2 pull requests #153541 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.1%] | 9 |
| All (primary) | - | - | 0 |
Don’t use incremental disk-cache for query predicates_of #153521 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.8% | [-2.0%, -0.1%] | 92 |
| Improvements (secondary) | -1.0% | [-2.6%, -0.2%] | 40 |
| All (primary) | -0.8% | [-2.0%, -0.1%] | 92 |
Rollup of 6 pull requests #153579 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.4%, -0.1%] | 3 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 1 |
| All (primary) | -0.2% | [-0.4%, -0.1%] | 3 |
core: respect precision in ByteStr Display #153025 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.8%, -0.2%] | 4 |
| Improvements (secondary) | -0.8% | [-0.8%, -0.8%] | 1 |
| All (primary) | -0.4% | [-0.8%, -0.2%] | 4 |
Mixed
Rollup of 10 pull requests #153304 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.1%, 0.6%] | 5 |
| Regressions (secondary) | 0.3% | [0.0%, 0.5%] | 3 |
| Improvements (primary) | -0.7% | [-1.0%, -0.4%] | 2 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
| All (primary) | 0.1% | [-1.0%, 0.6%] | 7 |
- Only tiny perf. changes and it was overall a wash.
- Marked as triaged.
Rollup of 8 pull requests #153377 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 1 |
| Regressions (secondary) | 0.2% | [0.1%, 0.3%] | 6 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.8% | [-0.8%, -0.7%] | 2 |
| All (primary) | 0.1% | [0.1%, 0.1%] | 1 |
- The deep-vector tiny regression was likely https://github.com/rust-lang/rust/pull/153258, but it doesn’t seem worth it to deal with that.
- Marked as triaged.
Rollup of 4 pull requests #153552 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
| Improvements (primary) | -2.3% | [-2.5%, -2.2%] | 4 |
| Improvements (secondary) | -0.8% | [-0.8%, -0.8%] | 1 |
| All (primary) | -2.3% | [-2.5%, -2.2%] | 4 |
- The coercions tiny loss swung back in the next PR.
- Marked as triaged.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Convert
-Ctarget-cpuinto a target-modifier for AVR, AMDGCN and NVPTX " rust#150732 (last review activity: about 59 days ago)- Unsure who should review next (@RalfJ and @Alice Ryhl already gave a first pass)
- “Fix Hexagon ABI calling convention for small aggregates” rust#151572 (last review activity: about 47 days ago)
- cc @Jack Huey bot assigned so feel free to reroll. PR has been bouncing for a while - any taker?
- “Fix wrong suggestion for returning async closure” rust#151194 (last review activity: about 40 days ago)
- This is reviewed by someone else - maybe just merge?
Next meetings’ agenda draft: hackmd link