T-compiler Meeting Agenda 2026-04-23
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).
Other WG meetings
- None
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)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 28 days ago)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 9 months ago)
- “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 14 days ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: 2 months ago) - “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: 2 months ago)
- “Add -Z dead-fn-elimination to skip codegen of BFS-unreachable functions” compiler-team#976 (Zulip) (last review activity: about 26 days ago)
- “Change the ABI of powerpc64-unknown-linux-gnu to ELFv2” compiler-team#977 (Zulip) (last review activity: about 34 days ago)
- “group target modifier options under
-T” compiler-team#980 (Zulip) (last review activity: about 20 days ago)
- Pending FCP requests (check your boxes!)
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- no pending concerns
- merge: Turn long-deprecated -C options into errors (compiler-team#978)
- 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: Resolver: Batched Import Resolution (rust#145108)
- no pending concerns
- merge: Stabilize stack-protector (rust#146369)
- concerns: mitigation-enforcement (by Noratrieb)
- merge: Stabilize the
supertrait_item_shadowingfeature (rust#148605) - merge: resolve: Partially convert
ambiguous_glob_importslint into a hard error (rust#149195)- no pending concerns
- merge: Reduce
unreachable-codechurn aftertodo!()(rust#149543)- no pending concerns
- “Implement lint for black_boxing ZSTs” rust#150037
- merge: WF checks on closure arguments. (rust#151510)
- concerns: jobsteal crater regression fix (by lcnr)
- merge: fix(resolve): Warn on Self-Type Lifetime Elision for Non-
SelfTypes (rust#153692) - merge: Clean up crate type names to fix dylib vs staticlib confusion (rust#153863)
- no pending concerns
- 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: 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) - “Promote riscv64gc-unknown-linux-musl to Tier 2 (with Tools)” compiler-team#982 (Zulip)
- “Make stable hashing names consistent” compiler-team#983 (Zulip)
- “Lint unused pub items in binary crates” rust#149509
- “switch to v0 mangling by default on stable” rust#151994
- “Error on invalid macho section specifier” rust#155065
- “Add FCW to disallow
$cratein macro matcher” rust#155121 - “Allow trailing
selfin more contexts” rust#155137
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- No new accepted proposals this time.
- MCPs blocked on unresolved concerns
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 9 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 6 months ago)- concern: version-churn
- concern: why-not-ports-rustc
- concern: nonsystematic-breakage
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: 2 months 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: 5 months ago)
- concern: lang
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 31 days ago) - “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: 2 months ago)- concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: 2 months ago)- concern: fragmentation
- concern: complexity
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 9 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
- Truncated error messages with 1.95.0 · Issue #155414 · rust-lang/rust
- In #149484 we changed how errors from
compile_error!()are shown, suppressing some of them - triage question: this change was intentional but the issue shows a case where (according to the reporter) too little is shown. Author is open to a revert if we think it’s better
- What do we think?
- In #149484 we changed how errors from
- Issues in progress or waiting on other teams
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 60 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, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 34 P-high, 100 P-medium, 31 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
This week was a bit all over the place, but the largest regressions were either already fixed or they are being investigated. There were also a couple of nice perf. wins.
Triage done by @Kobzol. Revision range: dab8d9d1..9ab01ae5
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.2%, 4.6%] | 39 |
| Regressions (secondary) | 0.6% | [0.2%, 1.4%] | 31 |
| Improvements (primary) | -0.6% | [-4.8%, -0.1%] | 70 |
| Improvements (secondary) | -0.7% | [-4.1%, -0.0%] | 93 |
| All (primary) | -0.1% | [-4.8%, 4.6%] | 109 |
3 Regressions, 4 Improvements, 6 Mixed; 4 of them in rollups 41 artifact comparisons made in total
Regressions
Fallback {float} to f32 when f32: From<{float}> and add impl From<f16> for f32 #139087 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 1.1% | [0.3%, 2.2%] | 7 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | - | - | 0 |
- Introduced regressions with the new trait solver.
- Not marking as triaged yet.
delegation: fix def path hash collision, add per parent disambiguators #153955 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions (secondary) | 0.3% | [0.0%, 0.4%] | 20 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 3 |
- Small regressions primarily in secondary benchmarks.
- The regressions are being investigated in #155547.
- Not marking as triaged yet.
Remove HashStable impl for [hir::Attribute]. #154924 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.2%, 1.1%] | 42 |
| Regressions (secondary) | 0.6% | [0.3%, 1.6%] | 15 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [0.2%, 1.1%] | 42 |
- Correctness fix, the compiler skipped work it should not have skipped before.
- Already marked as triaged.
Improvements
Rollup of 10 pull requests #155239 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 1.4% | [1.4%, 1.4%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.7%, -0.1%] | 23 |
| All (primary) | - | - | 0 |
Don’t hash DelayedLints #155248 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
| Improvements (primary) | -0.1% | [-0.2%, -0.1%] | 3 |
| Improvements (secondary) | -0.3% | [-0.4%, -0.1%] | 20 |
| All (primary) | -0.1% | [-0.2%, -0.1%] | 3 |
Make region equality emits Eq constraints #155258 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 21 |
| Improvements (secondary) | -0.5% | [-1.2%, -0.1%] | 26 |
| All (primary) | -0.3% | [-0.4%, -0.2%] | 21 |
Refactor FnDecl and FnSig non-type fields into a new wrapper type #155223 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.7%, -0.2%] | 33 |
| Improvements (secondary) | -0.6% | [-1.2%, -0.1%] | 47 |
| All (primary) | -0.3% | [-0.7%, -0.2%] | 33 |
Mixed
Rollup of 18 pull requests #155380 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 5 |
| Improvements (secondary) | -0.3% | [-0.4%, -0.3%] | 2 |
| All (primary) | -0.2% | [-0.2%, -0.2%] | 5 |
- More improvements than regressions, but all tiny anyway.
- Marked as triaged.
Rollup of 5 pull requests #155432 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 2 |
| Regressions (secondary) | 0.2% | [0.0%, 0.2%] | 9 |
| Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.0% | [-0.4%, 0.2%] | 3 |
- Tiny regressions caused by #153178.
- Marked as triaged.
Remove fewer Storage calls in CopyProp and GVN #142531 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.2% | [0.2%, 16.9%] | 35 |
| Regressions (secondary) | 0.7% | [0.2%, 5.5%] | 22 |
| Improvements (primary) | -0.4% | [-0.5%, -0.3%] | 2 |
| Improvements (secondary) | -0.4% | [-1.5%, -0.2%] | 24 |
| All (primary) | 1.1% | [-0.5%, 16.9%] | 37 |
- This PR introduced performance regressions caused by wrong CGU estimates.
- They were later fixed in #155491.
- Marked as triaged.
Rollup of 11 pull requests #155552 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.4% | [-0.8%, -0.0%] | 9 |
| All (primary) | 0.4% | [0.4%, 0.4%] | 1 |
- One tiny regression in
clap_derive, but overall there were more green than red results. - Marked as triaged.
Merge BuildReducedGraphVisitor into DefPathVisitor #154945 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.6% | [0.3%, 1.0%] | 14 |
| Improvements (primary) | -0.4% | [-0.5%, -0.2%] | 6 |
| Improvements (secondary) | -0.4% | [-1.1%, -0.2%] | 13 |
| All (primary) | -0.4% | [-0.5%, -0.2%] | 6 |
- The post-merge results are slightly worse than the pre-merge run, but overall it’s a wash.
- Marked as triaged.
Fix performance regression introduced in #142531 by excluding Storage{Live,Dead} from CGU size estimation #155491 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 2.1% | [0.8%, 4.6%] | 5 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -4.2% | [-14.1%, -0.2%] | 9 |
| Improvements (secondary) | -3.9% | [-9.2%, -1.2%] | 3 |
| All (primary) | -1.9% | [-14.1%, 4.6%] | 14 |
- Fixed a previous regression from #142531.
- Marked as triaged.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Allow forbidden target features to be hard errors” rust#152821 (last review activity: 2 months ago)
- cc @dingxiangfei2009
- “[DO NOT MERGE] Remove #[no_link] attribute” rust#152856 (last review activity: 2 months ago)
- This was waiting on a crater run, here the results
- @bjorn3 do you need someone to comment the crater run and/or kick off the FCP? Or do you want to work on this further?
- “Port the
without_debuginfotest frombacktrace-rsto the testsuite” rust#152860 (last review activity: 2 months ago)- Jubilee is at capacity in the last weeks, we might want to reroll (maybe asking before)
Next meeting’s agenda draft: hackmd link