T-compiler Meeting Agenda 2026-01-29
Announcements
- Tip: have a look at a first data extraction from the contributor survey results in
#all/private - 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!)
- “Introduce a tier-3
wasm32-componenttarget” compiler-team#948 (Zulip) - “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) - “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (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)
- “Emit retags in codegen” compiler-team#958 (Zulip)
- “Promote aarch64-unknown-freebsd to Tier 2 with host tools” compiler-team#961 (Zulip)
- “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip)
- “Introduce a tier-3
- 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)
- 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)
- 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: Stabilize the
supertrait_item_shadowingfeature (rust#148605)- @|124288 @|326176
- concerns: pending-reference-pr (by traviscross)
- 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: Make operational semantics of pattern matching independent of crate and module (rust#150681)
- @|271719 @|120827 @_|310518
- 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: 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: 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) - “resolve: Report more visibility-related early resolution ambiguities for imports” rust#149596
- “Feature-gate
mut refpatterns in struct pattern field shorthand” rust#151102 - “Add FCW for derive helper attributes that will conflict with built-in attributes” rust#151152
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- “Promote tvOS/watchOS/visionOS to Tier 2” compiler-team#918 (Zulip)
- “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) - “Create new Tier 2 targets with sanitizers enabled by default” compiler-team#951 (Zulip)
- “Allow combining
--help -C help -Z help -W helpin one invocation” compiler-team#954 (Zulip) - “Lint unsupported, target-specifc codegen flags” compiler-team#957 (Zulip)
- “Remove the fluent files” compiler-team#959 (Zulip)
- MCPs blocked on unresolved concerns
- “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip)- concern: not worth the complexity
- “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: 3 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: nonsystematic-breakage
- concern: version-churn
- concern: why-not-ports-rustc
- “Doc comments and attributes on macro arms” compiler-team#935 (Zulip) (last review activity: 2 months ago)
- concern: lang
- “Allow using prebuilt sanitizer libraries” compiler-team#943 (Zulip) (last review activity: about 47 days ago)
- concern: why-not-third-party-tool
- concern: what-about-combinatorics
- “Query
- 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
- “Don’t strip shebang in expr-ctxt
include!(…)” rust#146377 - “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
- “Policy on the use of
rustc_legacy_const_genericsin stdarch” rust#149654
- “Don’t strip shebang in expr-ctxt
Backport nominations
Note: given the number of possible stable backport candidates, T-release will discuss tomorrow a 1.93.1. Few of the following PRs are still open, though.
T-compiler beta / T-compiler stable
- :beta: “Don’t try to evaluate const blocks during constant promotion” rust#150557
- Authored by dianne
- Note: now merged, discussed 2 weeks ago and decided to leave it nominated and backport in the next release cycle
- :beta: “layout: handle rigid aliases without params” rust#151814
- Authored by lcnr
- Just opened, quite small, fixes P-high #151791
- Voting Zulip topic
- :stable: “Don’t try to recover keyword as non-keyword identifier " rust#150590
- Authored by jieyouxu
- Merged 4 days ago, backport PR in #151714
- Voting Zulip topic, majority in favour though - in isolation - wouldn’t justify a dot release
- :stable: “Parse ident with allowing recovery when trying to diagnose” rust#151249
- Authored by mu001999
- Voting Zulip topic, unsure? Backport suggested by PR author, see comment
- :stable: “layout: handle rigid aliases without params” rust#151814
- Authored by lcnr
- Voting Zulip topic
- Just opened, quite small, fixes P-high #151791
- 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
- 64 T-compiler P-high issues
- 1 P-critical, 2 P-high, 1 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 0 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 37 P-high, 100 P-medium, 28 P-low regression-from-stable-to-stable
P-critical
- None
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “Chromium hitting SIGILL crashes on aarch64 after #144938 enabled outlined atomics by default” rust#151486
- This is being discussed
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
This week saw a very nice win from doing overall less work in the compiler (https://github.com/rust-lang/rust/pull/151382). There were a few regressions, but only in artificial stress tests, we are keeping an eye on them.
Triage done by @kobzol. Revision range: 3d087e60..ebf13cca
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.6% | [0.2%, 1.8%] | 9 |
| Regressions (secondary) | 3.1% | [0.1%, 19.9%] | 47 |
| Improvements (primary) | -1.0% | [-3.1%, -0.2%] | 195 |
| Improvements (secondary) | -1.4% | [-10.1%, -0.1%] | 157 |
| All (primary) | -1.0% | [-3.1%, 1.8%] | 204 |
2 Regressions, 2 Improvements, 6 Mixed; 6 of them in rollups 42 artifact comparisons made in total
Regressions
Rollup of 8 pull requests #151395 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.2%, 0.9%] | 18 |
| Regressions (secondary) | 0.7% | [0.2%, 1.1%] | 24 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [0.2%, 0.9%] | 18 |
- The doc regressions were caused by #151091.
- This adds new functionality to rustdoc.
- Already marked as triaged.
Rollup of 12 pull requests #151716 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 4.0% | [0.0%, 5.2%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | - | - | 0 |
- Considerable regression on a single stress test caused by #151529.
- Continuing discussion on the PR.
- Marked as triaged.
Improvements
Only run finalizers of accepted attributes #151382 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.0% | [0.0%, 0.0%] | 1 |
| Improvements (primary) | -1.0% | [-3.2%, -0.2%] | 182 |
| Improvements (secondary) | -1.7% | [-10.0%, -0.1%] | 110 |
| All (primary) | -1.0% | [-3.2%, -0.2%] | 182 |
Rollup of 4 pull requests #151443 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.0%, 0.2%] | 2 |
| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 11 |
| Improvements (secondary) | -0.5% | [-1.0%, -0.2%] | 22 |
| All (primary) | -0.3% | [-0.3%, -0.2%] | 11 |
Mixed
Rollup of 15 pull requests #151381 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 4.6% | [0.1%, 20.1%] | 20 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
| All (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
- A large regression on stress tests was caused by #148623.
- Continuing discussion on the PR.
- Marked as triaged.
compiler: upgrade to hashbrown 0.16.1 #151076 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions (secondary) | 0.6% | [0.1%, 1.2%] | 8 |
| Improvements (primary) | -0.8% | [-0.8%, -0.7%] | 2 |
| Improvements (secondary) | -0.3% | [-1.4%, -0.1%] | 12 |
| All (primary) | -0.2% | [-0.8%, 0.2%] | 5 |
- Dependency update, performance-wise overall a wash.
- Marked as triaged.
Use repeat_packed when calculating layouts in RawVec #151389 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.2% | [0.7%, 1.8%] | 2 |
| Regressions (secondary) | 0.4% | [0.2%, 1.6%] | 9 |
| Improvements (primary) | -0.2% | [-0.8%, -0.2%] | 35 |
| Improvements (secondary) | -0.4% | [-1.8%, -0.1%] | 43 |
| All (primary) | -0.2% | [-0.8%, 1.8%] | 37 |
- More improvements than regressions.
- Already marked as triaged.
Rollup of 10 pull requests #151634 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.7%, 0.7%] | 1 |
| Regressions (secondary) | 1.0% | [0.3%, 3.0%] | 5 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.6% | [-0.9%, -0.2%] | 7 |
| All (primary) | 0.7% | [0.7%, 0.7%] | 1 |
- While the regression on the incremental case of a single stress test looks real, there is only a single tiny regression on real world benchmarks, and overall the results are a wash. I don’t think it’s worth it investigating further.
- Marked as triaged.
optimize vec.extend(slice.to_vec()), take 2 #151337 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.6% | [0.3%, 1.0%] | 6 |
| Regressions (secondary) | 0.3% | [0.0%, 0.7%] | 4 |
| Improvements (primary) | -0.6% | [-0.7%, -0.5%] | 2 |
| Improvements (secondary) | -0.5% | [-4.2%, -0.0%] | 12 |
| All (primary) | 0.3% | [-0.7%, 1.0%] | 8 |
- The results are a wash overall.
- Marked as triaged.
Rollup of 5 pull requests #151727 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.0%, 0.1%] | 4 |
| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.0%] | 3 |
| All (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
- The regressions are very tiny and only on two secondary benchmarks, I don’t think we have to investigate further.
- Marked as triaged.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
This week skip :-)
Next meetings’ agenda draft: hackmd link