T-compiler Meeting Agenda 2026-04-30
Announcements
- (TIP) add here non-recurrent scheduled meetings, check the schedule calendar
- 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 meetings
- @_Jana office hours time:2026-04-30T16:00:00+02:00 and time:2026-05-04T16:00:00+02:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Create a new Tier 3 target:
powerpc-unknown-none” compiler-team#986 (Zulip) - “Create a new Tier 3 target:
powerpc64-unknown-none” compiler-team#987 (Zulip)
- “Create a new Tier 3 target:
- 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 35 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 21 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 33 days ago)
- “Change the ABI of powerpc64-unknown-linux-gnu to ELFv2” compiler-team#977 (Zulip) (last review activity: about 41 days ago)
- “group target modifier options under
-T” compiler-team#980 (Zulip) (last review activity: about 27 days ago)
- Pending FCP requests (check your boxes!)
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- @|124288 @|125250 @|119031 @|353056
- no pending concerns
- merge: Promotes 5 Thumb-mode bare-metal Arm targets to Tier 2 (compiler-team#985)
- no pending concerns
- merge: Stabilize stack-protector (rust#146369)
- By reading this comment, is this waiting on the author?
- concerns: mitigation-enforcement (by Noratrieb)
- cc: @noratrieb is your concern still standing? There was a discussion on Zulip last year
- merge: Stabilize the
supertrait_item_shadowingfeature (rust#148605)- concerns: implementation-confidence (by BoxyUwU) inconsistent-name-res-semantics (by BoxyUwU)
- (left a comment asking for an update)
- concerns: implementation-confidence (by BoxyUwU) inconsistent-name-res-semantics (by BoxyUwU)
- “Implement lint for black_boxing ZSTs” rust#150037
- asked for an update, status unclear
- 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 (last one resolved last week)
- 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: 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) - “Turn long-deprecated -C options into errors” compiler-team#978 (Zulip)
- “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) - “Create a new Tier 3 target:
powerpc64le-unknown-none” compiler-team#988 (Zulip)- concern: baseline-features
- concern: softfloat
- “error on empty
export_name” rust#155515 - “validate
#[link_name = "..."]&#[link(name = "...")]parameters” rust#155817
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- No new accepted proposals this time.
- 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: 9 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 6 months ago)- concern: why-not-ports-rustc
- concern: nonsystematic-breakage
- concern: version-churn
- “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: 5 months ago)
- concern: lang
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 38 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: 2 months ago)- concern: complexity
- concern: fragmentation
- Finalized FCPs (disposition merge)
- None
- Other teams finalized FCPs
- None
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “codegen-options docs: remove -Csoft-float” rust#155514
- Authored by RalfJung
- updates a Markdown file about the removal of this flag, nothing critical apparently
- Voting Zulip topic, in favor
- :beta: “
dlltool: Set the working directory to workaround--temp-prefixbug” rust#155899- Authored by ChrisDenton
- PR was just merged
- Voting Zulip topic, not yet a clear consensus
- while I (@_apiraino) have flagged #155591 as P-critical, we’re still not sure of its impact
- :stable: “
dlltool: Set the working directory to workaround--temp-prefixbug” rust#155899- Authored by ChrisDenton
- Voting Zulip topic, in favor of a patch-release in case planned, (which for now doesn’t seem the case)
- 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
- 59 T-compiler P-high issues
- 1 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, 35 P-high, 100 P-medium, 31 P-low regression-from-stable-to-stable
P-critical
- “1.96 beta regression: “lua does not live long enough”, take 2” rust#155902
- Will be fixed by #155915 authored by @_dianne
- backport nominated (T-libs call)
- 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
Relatively few perf-affecting changes this week. Perf report is more positive
than users should see due to the -Zincremental-verify-ich related
improvements in #155473.
Triage done by @simulacrum. Revision range: 9ab01ae5..ca9a134e
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.8% | [0.4%, 2.0%] | 17 |
| Regressions (secondary) | 0.4% | [0.0%, 1.7%] | 10 |
| Improvements (primary) | -0.8% | [-2.8%, -0.2%] | 137 |
| Improvements (secondary) | -1.0% | [-5.3%, -0.0%] | 176 |
| All (primary) | -0.6% | [-2.8%, 2.0%] | 154 |
1 Regression, 5 Improvements, 3 Mixed; 3 of them in rollups 32 artifact comparisons made in total
Regressions
privacy: Assert that compared visibilities are (usually) ordered #155257 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.2%, 0.7%] | 12 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [0.2%, 0.7%] | 12 |
This regressed in typenum and libc, both of which have many imports/items declared. Based on PR discussion, it sounds like this is an intentional regression with a goal of identifying potential bugs in the wild where visibilities don’t match expectations. https://github.com/rust-lang/rust/pull/155608 is a potential improvement mitigating the impact.
Improvements
Replace ShardedHashMap method insert with debug-checked insert_unique #155550 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.7%, -0.2%] | 9 |
| Improvements (secondary) | -0.5% | [-0.7%, -0.2%] | 21 |
| All (primary) | -0.4% | [-0.7%, -0.2%] | 9 |
Streamline CrateMetadataRef construction in provide_one!. #155628 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.5% | [-1.3%, -0.3%] | 14 |
| Improvements (secondary) | -0.8% | [-2.2%, -0.2%] | 30 |
| All (primary) | -0.5% | [-1.3%, -0.3%] | 14 |
Permit {This} in diagnostic attribute format literals #155662 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.2%] | 13 |
| All (primary) | - | - | 0 |
Prefer -1 for None #155473 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.7% | [0.2%, 1.9%] | 5 |
| Improvements (primary) | -0.3% | [-2.7%, -0.1%] | 67 |
| Improvements (secondary) | -0.3% | [-0.8%, -0.1%] | 52 |
| All (primary) | -0.3% | [-2.7%, -0.1%] | 67 |
Rollup of 10 pull requests #155655 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.0%, 0.1%] | 2 |
| Improvements (primary) | -0.8% | [-3.7%, -0.2%] | 110 |
| Improvements (secondary) | -1.2% | [-5.5%, -0.0%] | 83 |
| All (primary) | -0.8% | [-3.7%, -0.2%] | 110 |
The few regressions in include-blob look to be potentially noise. Marked as
triaged. The majority or all of the improvements are mostly not going to affect
users, they’re specific to -Zincremental-verify-ich which is not on by
default (but is on in the perf collector). See
comment.
Mixed
Rollup of 6 pull requests #155596 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.0% | [0.3%, 2.1%] | 14 |
| Regressions (secondary) | 0.6% | [0.6%, 0.7%] | 7 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 3 |
| All (primary) | 1.0% | [0.3%, 2.1%] | 14 |
Ran perf runs on PRs inside the rollup and identified root cause as “Fix #[expect(dead_code)] liveness propagation” #154377. Marked the regression as triaged since that is a correctness fix and I suspect the regression is isolated in instruction count rather than wall clock changes.
AliasTerm refactor #155392 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.1%, 0.9%] | 19 |
| Regressions (secondary) | 0.3% | [0.0%, 0.7%] | 19 |
| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 10 |
| Improvements (secondary) | -0.3% | [-0.5%, -0.2%] | 9 |
| All (primary) | 0.2% | [-0.4%, 0.9%] | 29 |
Asked whether we think the tradeoff is worth it on the PR.
Rollup of 7 pull requests #155687 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.5%] | 16 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.5% | [-0.7%, -0.2%] | 14 |
| All (primary) | 0.3% | [0.2%, 0.5%] | 16 |
Unclear what the root cause is. Kicked off a build on #155469.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “fix(interp): Treat
UnsafeBinderas Compound Type intry_visit_primitive” rust#153458 (last review activity: about 55 days ago)- cc @dingxiangfei2009
- “Use
trait_object_dummy_selfmore & heavily fix+update related docs” rust#153497 (last review activity: about 54 days ago)- cc @dingxiangfei2009
- “Add suggestion for E0401 on inner const items” rust#153566 (last review activity: about 52 days ago)
- cc @esteban
Next meetings’ agenda draft: hackmd link