T-compiler Meeting Agenda 2026-05-14
Announcements
- Opened a request for a small slot at the RustWeek to discuss and receive feedback about the weekly triage meeting: let’s talk about how we can improve it!
- 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
- @_Jana office hours time:2026-05-14T16:00:00+02: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)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 49 days ago)
- Don’t see great consensus, No open concerns but discussion didn’t result in a great consensus or capacity to support (see my comment)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip)
- concern: proposal-wording
- Left a ping to the author (comment), unsure if they still have bandwidth to discuss the proposal
- “Relative VTables for Rust” compiler-team#903 (Zulip)
- Not seconded but not stale. Authors (@Leonard Chan and then @Erick Tryzelaar) are working on improving the proposal (guided by the Gemini AI and feedback from T-compiler members)
- Might post a comment asking for clarification: unclear if there is consensus about the proposal. But in the meanwhile the authors are putting effort in it
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 7 months ago)- concern: nonsystematic-breakage
- concern: why-not-ports-rustc
- concern: version-churn
- Unclear consensus, I don’t think I see a wild enthusiasm either.
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 49 days ago)
- Old MCPs (not seconded, take a look)
- “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 35 days ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: 3 months ago) - “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: 3 months ago)
- “Add -Z dead-fn-elimination to skip codegen of BFS-unreachable functions” compiler-team#976 (Zulip) (last review activity: about 47 days ago)
- “Change the ABI of powerpc64-unknown-linux-gnu to ELFv2” compiler-team#977 (Zulip) (last review activity: about 55 days ago)
- “group target modifier options under
-T” compiler-team#980 (Zulip) (last review activity: about 41 days ago) - “Create a new Tier 3 target:
powerpc-unknown-none” compiler-team#986 (Zulip) (last review activity: about 13 days ago) - “Create a new Tier 3 target:
powerpc64-unknown-none” compiler-team#987 (Zulip) (last review activity: about 13 days ago)
- “Add flag to pass MSRV/
- Pending FCP requests (check your boxes!)
- merge: Promotes 5 Thumb-mode bare-metal Arm targets to Tier 2 (compiler-team#985)
- no pending concerns, are we ok with approving this? Throwing some pings around:
- cc: @|124288 @|119031 @|116118 @|343125
- merge: Stabilize stack-protector (rust#146369)
- concerns: mitigation-enforcement (by Noratrieb)
- merge: Clean up crate type names to fix dylib vs staticlib confusion (rust#153863)
- no pending concerns
- merge: Promotes 5 Thumb-mode bare-metal Arm targets to Tier 2 (compiler-team#985)
- 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: inhibit-opts
- concern: lose-debuginfo-data
- “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) - “Create a new Tier 3 target:
powerpc64le-unknown-none” compiler-team#988 (Zulip)- concern: softfloat
- concern: baseline-features
- “Resolver: Batched Import Resolution” rust#145108
- “fix: fix the capture behavior of
if letin closures” rust#154210 - “Check arguments of attributes where no arguments are expected” rust#155193
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- “Promote riscv64gc-unknown-linux-musl to Tier 2 (with Tools)” compiler-team#982 (Zulip)
- “Make stable hashing names consistent” compiler-team#983 (Zulip)
- “replace
box_patternsin the compiler withderef_patterns” compiler-team#984 (Zulip)
- MCPs blocked on unresolved concerns
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: 2 months 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: 6 months ago)
- concern: lang
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 52 days ago) - “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: 3 months ago)- concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: 3 months ago)- concern: complexity
- concern: fragmentation
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: 2 months ago)
- Finalized FCPs (disposition merge)
- [T-types] “Make trait refs & assoc ty paths properly induce trait object lifetime defaults” rust#129543
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “resolve: Set correct parent and expansion for
selfdeclarations” rust#156353- Authored by petrochenkov
- From comment:
The backport is mostly for the use of self_decl (#146972) and trivial fixes to it (#154313 and this PR) to go into the same release. I’m not sure if the ICE can be triggered before #156185 is merged. Maybe it’s not so important to backport after all.
- Voting Zulip topic, general vibe is “doesn’t need to be backported but it’s a nice to have”
- :beta: “Fix unused assignments in diverging branches” rust#156425
- Authored by chenyukang
- Fixes diag issue #156425, self-contained
- Voting Zulip topic, no strong opinions in either way
- :stable: “resolve: Set correct parent and expansion for
selfdeclarations” rust#156353- Authored by petrochenkov
- Voting Zulip topic, same reasoning for the beta nomination. A nice to have for a dot release, currently not planned)
- 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, 0 P-high, 2 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, 30 P-low regression-from-stable-to-stable
P-critical
- None
- 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 saw a couple of PRs affecting the new trait solver, which is steadily moving forward,
in particular #156139 was a massive perf. win.
#156185 optimized visibility computation, resulting
in an up to 8% win on the typenum crate.
Triage done by @Kobzol. Revision range: 1d72d7e8..aa31d6d8
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.4%] | 62 |
| Regressions (secondary) | 0.5% | [0.1%, 1.5%] | 77 |
| Improvements (primary) | -1.7% | [-8.8%, -0.2%] | 18 |
| Improvements (secondary) | -13.6% | [-85.6%, -0.0%] | 34 |
| All (primary) | -0.2% | [-8.8%, 0.4%] | 80 |
2 Regressions, 2 Improvements, 5 Mixed; 4 of them in rollups 31 artifact comparisons made in total
Regressions
Lint unused pub items in binary crates #149509 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.4%] | 4 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.1%, 0.4%] | 4 |
- The regression looks genuine, but it is very small. The compiler now runs a new allow-by-default lint, so that is expected.
- Marked as triaged.
@rustbot label: +perf-regression-triaged
-Zassumptions-on-binders #155887 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.2%] | 10 |
| Regressions (secondary) | 0.5% | [0.1%, 1.1%] | 25 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.0% | [-0.0%, -0.0%] | 1 |
| All (primary) | 0.2% | [0.1%, 0.2%] | 10 |
- Tiny regressions across the board, mostly in trait-heavy crates and the new trait solver.
- Not marking as triaged yet.
Improvements
Rollup of 12 pull requests #156267 (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.2% | [-0.2%, -0.2%] | 2 |
| All (primary) | -0.3% | [-0.3%, -0.2%] | 8 |
resolve: Evaluate private visibilities eagerly in eff vis computation #156185 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -2.5% | [-8.6%, -0.2%] | 11 |
| Improvements (secondary) | -1.8% | [-2.5%, -0.3%] | 13 |
| All (primary) | -2.5% | [-8.6%, -0.2%] | 11 |
Mixed
Short-circuit calculate_fallback_to_f32 when no float vars #156139 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.0%, 0.1%] | 4 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -21.0% | [-87.6%, -0.0%] | 18 |
| All (primary) | - | - | 0 |
- Massive wins in the new trait solver.
- Already marked as triaged.
Rollup of 7 pull requests #156190 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.3%] | 3 |
| Regressions (secondary) | 0.5% | [0.2%, 0.7%] | 25 |
| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
| Improvements (secondary) | -1.2% | [-1.8%, -0.5%] | 2 |
| All (primary) | 0.1% | [-0.3%, 0.3%] | 4 |
- Regression caused by #156172, discussion is continuing there.
- Marked as triaged.
Rollup of 15 pull requests #156217 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.6% | [0.1%, 1.0%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.0% | [-0.1%, -0.0%] | 3 |
| All (primary) | - | - | 0 |
- The wg-grammar regression was caused by #155808.
- Marked as triaged.
Improve caching by introducing TypingMode::ErasedNotCoherence #155443 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 2.5% | [0.0%, 16.6%] | 18 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -9.0% | [-26.2%, -0.1%] | 11 |
| All (primary) | - | - | 0 |
- This only really affects the new solver, where it is a big win for
wg-grammar, though also a big regression fordeeply-nested-multi. - Marked as triaged.
Rollup of 4 pull requests #156324 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 |
| Regressions (secondary) | 0.3% | [0.2%, 0.3%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.5% | [-1.5%, -1.5%] | 1 |
| All (primary) | 0.3% | [0.3%, 0.3%] | 1 |
- Tiny regression on hyper
docbenchmark and thebitmapsbenchmark with the new trait solver, overall a wash. I don’t think it’s worth digging 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
- “Unconstrained parameter fix” rust#148788 (last review activity: about 49 days ago)
- cc: @davidtwco
- “Hand-written Debug implementation for
TypeTest” rust#153785 (last review activity: about 47 days ago)- cc @_Martin Nordholts (Enselic) (ok to leave a comment on the PR?)
- “debuginfo: emit DW_TAG_call_site entries on optimized builds” rust#154532 (last review activity: about 46 days ago)
- @Ding Xiang Fei (wieDasDing) (this should recover a perf. loss from beginning of April)
- “Fix marker trait winnowing depending on impl order” rust#153847 (last review activity: about 44 days ago)
- Unsure if it needs a first look by T-lang? T-types? cc @oli
- “GVN: transmute adts to their fields if a field projection is immediately transmuted anyway” rust#153085 (last review activity: 2 months ago)
- I think waiting on @_scottmcm (not in this channel, ok to leave a comment?)
Next meeting will probably skip due to RustWeek?