T-compiler Meeting Agenda 2026-03-05
Announcements
- Today release of Rust 1.94.0, see blog post draft
- 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: 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 34 days ago) - “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 34 days ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: about 34 days ago) - “Tier 3 targets proposal: LoongArch UEFI” compiler-team#953 (Zulip) (last review activity: about 34 days ago)
- “Emit retags in codegen” compiler-team#958 (Zulip) (last review activity: about 34 days ago)
- “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: about 34 days ago)
- Pending FCP requests (check your boxes!)
- merge: Promote aarch64-unknown-freebsd to Tier 2 with host tools (compiler-team#961)
- @|124288 @|119031 @|353056
- no pending concerns
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- @|124288 @|123586 @|125250 @|119031 @|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)- @|124288 @|119031 @|353056
- no pending concerns
- “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: switch to v0 mangling by default on stable (rust#151994)
- @|123586 @|119031 @|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: 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)
- “Remove -Csoft-float” compiler-team#971 (Zulip)
- concern: error-or-ignore
- “Remove soft_unstable” compiler-team#972 (Zulip)
- “Gate #![reexport_test_harness_main] properly” rust#152210
- “deny-by-default & report in deps
uninhabited_static” rust#152853 - “Remove
ATTRIBUTE_ORDER” rust#153041
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- “Place-less cg_ssa intrinsics” compiler-team#970 (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: 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: why-not-ports-rustc
- concern: version-churn
- concern: nonsystematic-breakage
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: about 19 days ago)
- concern: we-like-using-the-features-we-ship
- concern: infra-and-bootstrap-burden
- “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 34 days ago)- concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: about 20 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)
- None
- Other teams finalized FCPs
- None
Backport nominations
T-compiler beta / T-compiler stable
- No beta nominations for
T-compilerthis time. - 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
- 59 T-compiler P-high issues
- 0 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 1 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 34 P-high, 100 P-medium, 30 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 positive week with a few nice improvements coming from query system cleanups.
Triage done by @panstromek. Revision range: eeb94be7..ddd36bd5
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 |
| Regressions (secondary) | 0.2% | [0.0%, 0.3%] | 3 |
| Improvements (primary) | -0.8% | [-2.1%, -0.1%] | 141 |
| Improvements (secondary) | -1.1% | [-6.6%, -0.1%] | 90 |
| All (primary) | -0.8% | [-2.1%, 0.3%] | 142 |
2 Regressions, 5 Improvements, 5 Mixed; 4 of them in rollups 30 artifact comparisons made in total
Regressions
Remove const FLAGS. #152791 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.5%] | 17 |
| Regressions (secondary) | 0.3% | [0.1%, 0.6%] | 37 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [0.1%, 0.5%] | 17 |
Triaged by @nnethercote: “Perf regressions were minor and deemed worthwhile above for the simplicity improvements.”
Rollup of 12 pull requests #153074 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.9% | [0.2%, 4.9%] | 44 |
| Regressions (secondary) | 0.9% | [0.2%, 3.3%] | 25 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.4% | [-0.4%, -0.4%] | 1 |
| All (primary) | 1.9% | [0.2%, 4.9%] | 44 |
Already triaged by @JonathanBrouwer. Caused by https://github.com/rust-lang/rust/pull/152679, reverted in https://github.com/rust-lang/rust/pull/153095.
Improvements
Improve how QueryCache/QueryState/QueryEngine are stored #152835 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.3%, -0.1%] | 5 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.1%] | 16 |
| All (primary) | -0.2% | [-0.3%, -0.1%] | 5 |
Rollup of 7 pull requests #153124 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.4%, -0.1%] | 17 |
| Improvements (secondary) | -0.4% | [-0.9%, -0.1%] | 20 |
| All (primary) | -0.2% | [-0.4%, -0.1%] | 17 |
Rollup of 2 pull requests #153139 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -2.0% | [-4.8%, -0.2%] | 42 |
| Improvements (secondary) | -0.9% | [-3.2%, -0.2%] | 25 |
| All (primary) | -2.0% | [-4.8%, -0.2%] | 42 |
Revert “Simplify internals of {Rc,Arc}::default” #153108 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.7%, -0.3%] | 6 |
| Improvements (secondary) | -0.6% | [-0.6%, -0.6%] | 1 |
| All (primary) | -0.4% | [-0.7%, -0.3%] | 6 |
Improve the forcing/promotion functions in DepKindVTable #153122 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 1.9% | [1.9%, 1.9%] | 1 |
| Improvements (primary) | -0.8% | [-1.7%, -0.3%] | 102 |
| Improvements (secondary) | -1.2% | [-6.5%, -0.2%] | 68 |
| All (primary) | -0.8% | [-1.7%, -0.3%] | 102 |
Mixed
Rollup of 13 pull requests #153116 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.3%, 1.0%] | 4 |
| Regressions (secondary) | 2.6% | [0.3%, 5.9%] | 5 |
| Improvements (primary) | -0.5% | [-0.5%, -0.5%] | 1 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
| All (primary) | 0.3% | [-0.5%, 1.0%] | 5 |
Already triaged by @JonathanBrouwer, caused by https://github.com/rust-lang/rust/pull/149978, will be addressed by https://github.com/rust-lang/rust/pull/153157.
Prepare NonNull for pattern types #152702 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.4%, 0.6%] | 3 |
| Regressions (secondary) | 0.5% | [0.5%, 0.5%] | 1 |
| Improvements (primary) | -0.3% | [-0.5%, -0.2%] | 3 |
| Improvements (secondary) | -1.1% | [-1.1%, -1.1%] | 1 |
| All (primary) | 0.1% | [-0.5%, 0.6%] | 6 |
Slightly worse than pre-merge results, but looks somewhat expected - some tiny regressions in LLVM, a bit of codegen unit shuffling.
refactor(mgca): Change DefKind::Const and DefKind::AssocConst to have a is_type_const flag #153050 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.0% | [0.0%, 0.0%] | 1 |
| Improvements (primary) | -0.5% | [-0.8%, -0.2%] | 17 |
| Improvements (secondary) | -0.7% | [-1.7%, -0.0%] | 10 |
| All (primary) | -0.5% | [-0.8%, -0.2%] | 17 |
Tiny regression in include-blob stress test, overall positive.
Optimize dependency file search #153131 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.4% | [-0.6%, -0.2%] | 7 |
| All (primary) | 0.1% | [0.1%, 0.1%] | 1 |
Triaged by @Kobzol (author): “The regression seems like noise. Tiny wins on large-workspace, matching pre-merge run.”
Re-add #[inline] to Eq::assert_fields_are_eq #153157 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.3%] | 3 |
| Improvements (primary) | -0.5% | [-0.8%, -0.3%] | 4 |
| Improvements (secondary) | -3.0% | [-5.6%, -0.4%] | 4 |
| All (primary) | -0.5% | [-0.8%, -0.3%] | 4 |
Net positive, addresses previous regression from https://github.com/rust-lang/rust/pull/153116. Small regression in derive stress tests.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Add support for xray in aarch64 unknown none target” rust#148666 (last review activity: 3 months ago)
- cc: @Wesley Wiser
- “Implement
-Z allow-partial-mitigations(RFC 3855)” rust#149357 (last review activity: 2 months ago)- cc @Ramon de C Valle
- “Support using const pointers in asm
constoperand” rust#138618 (last review activity: 2 months ago)- cc: @Sparrow Li was auto-assigned, maybe reroll? Any taker? Needs a rebase btw
- “Stabilize
-Zdebuginfo-compressionas-Cdebuginfo-compression” rust#150625 (last review activity: 2 months ago)- cc: @Sparrow Li (do you want to pass it on to someone else?)
- “Try mark
no_hashqueries as green after execution” rust#150156 (last review activity: about 49 days ago)- cc @cjgillot
- “naked functions: respect
function-sections” rust#147811 (last review activity: about 48 days ago)- cc @Amanieu d’Antras
- “Fix incorrect trailing comma suggested in no_accessible_fields” rust#151280 (last review activity: about 46 days ago)
- rerolled reviewer (but up for grab, I think)
- “mir-opt: Remove the workaround in UnreachableEnumBranching” rust#146544 (last review activity: about 41 days ago)
- cc @Wesley Wiser
- “Cleanup query macros” rust#152424 (last review activity: about 23 days ago)
- cc: @Zalathar (probably also related PR #152459)
Next meetings’ agenda draft: hackmd link