T-compiler Meeting Agenda 2026-02-05
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: 2 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: 3 months ago) - “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) (last review activity: 3 months ago) - “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: 3 months ago)
- “Parse unstable keywords for experimental syntax” compiler-team#945 (Zulip) (last review activity: 2 months ago)
- “Introduce a tier-3
wasm32-componenttarget” compiler-team#948 (Zulip) (last review activity: about 6 days ago) - “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 6 days ago) - “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 6 days ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: about 6 days ago) - “Tier 3 targets proposal: LoongArch UEFI” compiler-team#953 (Zulip) (last review activity: about 6 days ago)
- “Emit retags in codegen” compiler-team#958 (Zulip) (last review activity: about 6 days ago)
- “Promote aarch64-unknown-freebsd to Tier 2 with host tools” compiler-team#961 (Zulip) (last review activity: about 0 days ago)
- “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: about 6 days ago)
Pending FCP requests (check your boxes!)
- 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)
- no pending checkboxes
- concerns: self-super-behavior (by traviscross)
- merge: Inhibit all-absent-variant optimization for all enum reprs that inhibit layout optimization, not just repr(C). (rust#146989)
- @|116009 @|614535
- concerns: crater (by joshtriplett)
- merge: rustc: Stop passing
--allow-undefinedon wasm targets (rust#149868)- @|116266 @|124288 @|125250 @|116107 @|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 @|116107 @|119031 @|248906 @|116122 @|116118 @|353056
- no pending concerns
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
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: continued-maintainer-interest
- concern: documentation
- “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
- “Extend the
x.pypolicy forTODOandFIXMEto other in-tree projects” compiler-team#963 (Zulip) - “Create linker subteam/Working Group” compiler-team#964 (Zulip)
- “For
nvptx64, drop old CPUs and ISAs - drop support fortarget-cpu< SM 7.0 and PTX ISA < 7.0” compiler-team#965 (Zulip) - “Stabilize the
supertrait_item_shadowingfeature” rust#148605 - “Make operational semantics of pattern matching independent of crate and module” rust#150681
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
Accepted MCPs
- No new accepted proposals this time.
MCPs blocked on unresolved concerns
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 7 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: 6 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 3 months ago)- concern: why-not-ports-rustc
- concern: version-churn
- concern: nonsystematic-breakage
- “Doc comments and attributes on macro arms” compiler-team#935 (Zulip) (last review activity: 3 months ago)
- concern: lang
- “Allow using prebuilt sanitizer libraries” compiler-team#943 (Zulip) (last review activity: about 54 days ago)
- concern: why-not-third-party-tool
- concern: what-about-combinatorics
- “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: about 6 days ago)- concern: not worth the complexity
- “Doc comments and attributes on macro arms” compiler-team#935 (Zulip) (last review activity: 3 months ago)
- concern: lang
- “Allow using prebuilt sanitizer libraries” compiler-team#943 (Zulip) (last review activity: about 54 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: 7 months ago)
Finalized FCPs (disposition merge)
- None
Other teams finalized FCPs
- None
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Parse ident with allowing recovery when trying to diagnose” rust#151249
- Authored by mu001999
- Fixes #151238, caused by #146978, an ICE on top of the compiler error. Repro comes from fuzzed code.
- (voting on Zulip wasn’t triggered because was not marked as regression nor as P-high)
- Discussed last week (comment), rather than a stable backport, we might do a beta one - but doesn’t appear to be super-priority
- :beta: “layout: handle rigid aliases without params” rust#151814
- Authored by lcnr
- Fixes #151791, which could be a P-high. Patch is quite small and seems harmless.
- Voting Zulip topic is in favor but PR is still waiting on a reviewer
- :beta: “Revert enabling
outline-atomicson various platforms” rust#151896- Authored by tgross35
- Partially reverts #144938. Reverts #149633
- Issue reported is Chromium not building on nightly when using a specific extension enabled (BTI):
platforms using a custom-built std with unstable
-Zbranch-protection=btimay run into issues - Voting Zulip topic, def. in favor
- :beta: “Revert doc attribute parsing errors to future warnings” rust#151952
- Authored by GuillaumeGomez
- Voting Zulip topic
- Fixes #151865, a high number of crates that regressed in a crater run
- :stable: “layout: handle rigid aliases without params” rust#151814
- Authored by lcnr
- Voting Zulip topic, trend is in favor but not yet reviewed/merged and likely won’t make it to a 1.93.1 (if T-release decides for that)
- 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
- 62 T-compiler P-high issues
- 0 P-critical, 3 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 1 P-high, 0 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 33 P-high, 100 P-medium, 28 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
Overall a positive week for instruction counts (~1% improvement on check/debug/opt/doc builds). Cycle counts and memory usage remain broadly unchanged across the week though.
Triage done by @simulacrum. Revision range: ebf13cca..a60d12cb
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 2.7% | [0.3%, 7.3%] | 3 |
| Regressions (secondary) | 3.2% | [0.3%, 6.0%] | 2 |
| Improvements (primary) | -1.2% | [-3.2%, -0.2%] | 243 |
| Improvements (secondary) | -1.4% | [-10.2%, -0.2%] | 301 |
| All (primary) | -1.2% | [-3.2%, 7.3%] | 246 |
0 Regression, 6 Improvements, 3 Mixed; 3 of them in rollups 33 artifact comparisons made in total
Regressions
No regressions this week.
Improvements
Rollup of 8 pull requests #151835 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 4 |
| Improvements (secondary) | -0.7% | [-1.1%, -0.2%] | 6 |
| All (primary) | -0.2% | [-0.3%, -0.2%] | 4 |
Small improvement on a number of benchmarks for non-incremental builds, likely
due to #147387 which tweaked
how hir_owner_parent interacts with the query system.
Pass DepNode by reference more places #151881 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 45 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.2%] | 17 |
| All (primary) | -0.3% | [-0.4%, -0.2%] | 45 |
resolve: Use IdentKey in resolve_ident_in_scope_set #151820 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 8 |
| Improvements (secondary) | -0.4% | [-0.9%, -0.1%] | 22 |
| All (primary) | -0.3% | [-0.3%, -0.2%] | 8 |
resolve: Replace Macros20NormalizedIdent with IdentKey #151550 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.0% | [0.0%, 0.0%] | 3 |
| Improvements (primary) | -0.3% | [-0.5%, -0.1%] | 69 |
| Improvements (secondary) | -0.5% | [-1.7%, -0.0%] | 37 |
| All (primary) | -0.3% | [-0.5%, -0.1%] | 69 |
Regressions in include-blob look likely to be just noise.
Tweak VecCache to improve performance #138405 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.0%, 0.2%] | 3 |
| Improvements (primary) | -0.4% | [-1.2%, -0.2%] | 126 |
| Improvements (secondary) | -0.5% | [-1.3%, -0.0%] | 93 |
| All (primary) | -0.4% | [-1.2%, -0.2%] | 126 |
Regressions in include-blob look likely to be just noise.
Rollup of 5 pull requests #151816 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 2 |
| Regressions (secondary) | 0.5% | [0.5%, 0.5%] | 1 |
| Improvements (primary) | -0.3% | [-0.7%, -0.2%] | 9 |
| Improvements (secondary) | -0.4% | [-0.7%, -0.1%] | 22 |
| All (primary) | -0.2% | [-0.7%, 0.3%] | 11 |
Doc builds improved, likely due to the portable SIMD subtree update
Regressions are (new) noise in typenum.
Mixed
Rollup of 4 pull requests #151749 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 1 |
| Regressions (secondary) | 0.1% | [0.0%, 0.1%] | 3 |
| Improvements (primary) | -0.2% | [-0.4%, -0.1%] | 22 |
| Improvements (secondary) | -0.5% | [-1.9%, -0.1%] | 53 |
| All (primary) | -0.2% | [-0.4%, 0.4%] | 23 |
This is essentially an improvement, the regressions look spurious. The improvements appear to be due to #151711 which updated stdarch. Why that caused improvements is unclear at this time.
Update to LLVM 22 #150722 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 3.2% | [0.9%, 7.4%] | 3 |
| Regressions (secondary) | 2.3% | [0.4%, 6.0%] | 3 |
| Improvements (primary) | -0.7% | [-2.8%, -0.2%] | 238 |
| Improvements (secondary) | -0.9% | [-10.1%, -0.1%] | 299 |
| All (primary) | -0.6% | [-2.8%, 7.4%] | 241 |
Lots of affected benchmarks (as normal), but overall a positive LLVM update by instruction counts. As @nnethercote notes, the cycle counts are a little red (comment) as we’ve seen before with LLVM updates.
Tweak SlicePartialEq to allow MIR-inlining the compare_bytes call #150945 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.3%, 0.6%] | 6 |
| Regressions (secondary) | 0.7% | [0.7%, 0.7%] | 1 |
| Improvements (primary) | -0.9% | [-2.3%, -0.1%] | 7 |
| Improvements (secondary) | -2.3% | [-2.3%, -2.3%] | 1 |
| All (primary) | -0.3% | [-2.3%, 0.6%] | 13 |
Expected mixed results from an inlining change. Overall positive.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “replace box_new with lower-level intrinsics” rust#148190 (last review activity: 2 months ago)
- This has been waiting for a long time. Can anyone take it? :)
- “Add
String<A>type with custom allocator parameter” rust#149328 (last review activity: 2 months ago)- cc @Amanieu d’Antras (but probably other people are involved)
- “implement error multi provider” rust#149615 (last review activity: 2 months ago)
- cc @The 8472|330154
Next meeting’s agenda draft: hackmd link