T-compiler Meeting Agenda 2026-04-09
Announcements
- Rust 1.95 release next week
- T-infra is running a short survey to learn more about peoples’ thoughts about the Rust Infrastructure (pain points, how can it improve our work, etc.). Please take a minute to leave an opinion️️ 🙂: https://www.surveyhero.com/c/rust-project-infra-feedback-2026
- 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
- Stable MIR Weekly Meeting time:2025-04-10T17:00:00+01:00
MCPs/FCPs
New MCPs (take a look, see if you like them!)
- No new proposals 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 14 days ago)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 8 months ago)
- “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 0 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 12 days ago)
- “Change the ABI of powerpc64-unknown-linux-gnu to ELFv2” compiler-team#977 (Zulip) (last review activity: about 20 days ago)
- “group target modifier options under
-T” compiler-team#980 (Zulip) (last review activity: about 6 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: Make trait refs & assoc ty paths properly induce trait object lifetime defaults (rust#129543)
- no pending concerns
- @lcnr do you want to start the FCP again? :)
- merge: Resolver: Batched Import Resolution (rust#145108)
- no pending concerns
- merge: Stabilize stack-protector (rust#146369)
- concerns: mitigation-enforcement (by Noratrieb)
- @noratrieb: can you check if the concern can be lifted? rfcs#3855 was merged (see comment)
- 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)- concerns: please-rename-lint (by traviscross)
- “Implement lint for black_boxing ZSTs” rust#150037
- merge: WF checks on closure arguments. (rust#151510)
- concerns: jobsteal crater regression fix (by lcnr)
- merge: switch to v0 mangling by default on stable (rust#151994)
- concerns: late-anon-const (by petrochenkov)
- 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)
- concerns: cargo-impact (by epage)
- 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: lose-debuginfo-data
- concern: inhibit-opts
- 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
- “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) - “report the
varargs_without_patternlint in deps” rust#154599 - “Verify that penultimate segment of enum variant path refers to enum if it has args” rust#154971
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
Accepted MCPs
- “Emit retags in codegen” compiler-team#958 (Zulip)
MCPs blocked on unresolved concerns
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 6 months ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 8 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: nonsystematic-breakage
- concern: why-not-ports-rustc
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: about 54 days 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 17 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: about 55 days ago)- concern: fragmentation
- concern: complexity
Finalized FCPs (disposition merge)
- None
Other teams finalized FCPs
- [T-types] “Do not use non-wf input expectations from fudge when checking function calls” rust#150316
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Revert
-Znext-solverRemove the forced ambiguity hack from search graph” rust#154712- Authored by lqd
- Mostly reverting because of #153910 (substancial Bevy compile time regression)
- Voting Zulip topic, in favor
- Actually T-types voted the backport, see other thread, seems safe to backport
- :beta: “Revert performing basic const checks in typeck on stable” rust#154930
- Authored by oli-obk
- Note: T-release is also waiting for this (see comment)
- Voting Zulip topic, in favor
- Also this one mirroring T-types approval (see on Zulip)
- 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
- “Remove redundant information in
rustc_abi::Variants” rust#151742- The review bounced for a while, can anyone with ABI/codegen knowledge have a look?
- @_RalfJ in case volunteered, see comment on Zulip, but not in the short time
- Issues in progress or waiting on other teams
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 62 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, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 33 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
- Port lint attributes to attribute parser by Bryntet · Pull Request #152369 · rust-lang/rust
- landed on nightly last week and is causing a number of regressions. A potential fix is #154906 but for tomorrow it won’t make to the beta cut (prioritization thread on Zulip). So, either:
- try to revert #152369 fast
- or wait for the beta and see how many regressions (and backports) we will have to deal with
- asked for an opinion from PR author+reviewers: https://github.com/rust-lang/rust/pull/152369#issuecomment-4212746162
- “Significant compilation time regression starting in v1.95.0-nightly (bevy)” rust#153910
- Fixed by revert #154712
- “Complex EH flow miscompiled on wasm” rust#153948
- fixed by revert #154700 (thanks Wesley!), upstream patch also merged https://github.com/llvm/llvm-project/pull/187484
- I think can we close this?
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
A shorter week than normal (probably due to later perf triage last week). Overall fairly small changes scattered across various PRs, though the net effect was slightly positive (-0.5% avg change). All changed ended up either mixed or improvements this week.
Triage done by @simulacrum. Revision range: cf7da0b7..e73c56ab
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 2 |
| Regressions (secondary) | 2.7% | [0.2%, 7.9%] | 47 |
| Improvements (primary) | -0.5% | [-1.6%, -0.1%] | 164 |
| Improvements (secondary) | -0.5% | [-1.9%, -0.1%] | 115 |
| All (primary) | -0.5% | [-1.6%, 0.4%] | 166 |
0 Regressions, 3 Improvements, 8 Mixed; 5 of them in rollups 26 artifact comparisons made in total
Regressions
No regressions this week.
Improvements
Rollup of 4 pull requests #154638 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 3 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.2% | [-0.3%, -0.2%] | 3 |
Rollup of 5 pull requests #154659 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.7% | [-1.1%, -0.2%] | 10 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.7% | [-1.1%, -0.2%] | 10 |
Streamline CachingSourceMapView #154614 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.7%, -0.1%] | 135 |
| Improvements (secondary) | -0.4% | [-1.4%, -0.1%] | 95 |
| All (primary) | -0.4% | [-0.7%, -0.1%] | 135 |
Mixed
Properly generalize unevaluated consts #154053 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 3 |
| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
| Improvements (secondary) | -0.1% | [-0.2%, -0.0%] | 7 |
| All (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
Regressions are limited to new solver, and fairly small. Most likely no need to investigate deeper, especially as this also fixes a few bugs.
Rollup of 4 pull requests #154668 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.4%] | 4 |
| Regressions (secondary) | 0.2% | [0.0%, 0.3%] | 14 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.4% | [-1.1%, -0.0%] | 5 |
| All (primary) | 0.2% | [0.1%, 0.4%] | 4 |
Most likely caused by extending integers with new methods in #154356. Enqueued a build to confirm that theory, see comment.
Don’t use disk-cache for query def_kind #154292 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.0%, 1.1%] | 5 |
| Improvements (primary) | -0.3% | [-0.4%, -0.1%] | 62 |
| Improvements (secondary) | -0.4% | [-0.7%, -0.1%] | 28 |
| All (primary) | -0.3% | [-0.4%, -0.1%] | 62 |
Not entirely clear but the instruction count regressions look like they may be within noise threshold in practice. Improvements also clearly outweigh the small regressions, so marking as triaged.
Revert #151380 and #153869 #154308 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.5%] | 16 |
| Regressions (secondary) | 3.6% | [0.0%, 8.6%] | 36 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-1.1%, -0.0%] | 16 |
| All (primary) | 0.3% | [0.1%, 0.5%] | 16 |
This reverts two improvements that landed in a previous week, so regressions are expected. This is ultimately a correctness fix.
Revert “Fix: On wasm targets, call panic_in_cleanup if panic occurs in cleanup #151771” #154700 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.0%, 0.3%] | 7 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.0%] | 2 |
| All (primary) | - | - | 0 |
revert, tiny changes, could be noise, the original PR didn’t have these as positive results, marking as triaged as there’s nothing much to do or investigate (until it relands and shows perf changes)
(see https://github.com/rust-lang/rust/pull/154700#issuecomment-4176873246)
Rollup of 20 pull requests #154727 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
| Improvements (primary) | -0.3% | [-0.3%, -0.1%] | 5 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.3% | [-0.3%, -0.1%] | 5 |
Probably noise (at least the regression), either way not worth investigating further.
Port lint attributes to attribute parser #152369 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 7 |
| Improvements (primary) | -0.3% | [-0.6%, -0.2%] | 20 |
| Improvements (secondary) | -0.4% | [-0.6%, -0.0%] | 37 |
| All (primary) | -0.3% | [-0.6%, 0.2%] | 21 |
Perf wins significantly outweigh the regressions.
Rollup of 5 pull requests #154802 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.0%, 0.4%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.6% | [-1.6%, -0.0%] | 3 |
| All (primary) | - | - | 0 |
Regression almost certainly due to https://github.com/rust-lang/rust/pull/154376#issuecomment-4130882120, that perf run matches pretty closely what we see here. I don’t think further investigation is warranted, the affected benchmark intentionally stresses the lint system (unused-warnings).
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- Remove fewer Storage calls in CopyProp and GVN" rust#142531
- cc @cjgillot
- “Skipping borrowck because of trivial const” rust#149468 (last review activity: about 55 days ago)
- cc @lcnr* question for you
- “HIR typeck: use correct expectations for negation operators” rust#151539 (last review activity: about 53 days ago)
- cc @Boxy this one needs an FCP but before I think the author left a comment asking for an opinion
Next meeting agenda draft: hackmd link