T-compiler Meeting Agenda 2026-07-02
Announcements
- Release Rust 1.96.1 was released to close issue #158214 (blog post)
- And next week release Rust 1.97!
- 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 @Boxy so we can pass it along).
Other WG meetings
- @_Jana office hours time:2026-07-02T16:00:00+02:00 and time:2026-07-06T16:00:00+02:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Move
LayoutandTyAndLayouttorustc_type_ir” compiler-team#1008 (Zulip)- concern: type_ir-is-a-pain
- “Move
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “group target modifier options under
-T” compiler-team#980 (Zulip) (last review activity: 3 months ago) - “
{cwd}placeholder in –remap-path-prefix” compiler-team#998 ([Zulip](@rustbot label +major-change +T-compiler)) (last review activity: about 20 days ago) - “Add testing for lint machinery at runtime” compiler-team#1004 (Zulip) (last review activity: about 6 days ago)
- “group target modifier options under
- Pending FCP requests (check your boxes!)
- merge: Promote
wasm32-wasip3to Tier 2 (compiler-team#1001)- @|116266 @|124288 @|116107 @|119031 @|370197 @|343125
- no pending concerns
- merge: WF checks on closure arguments. (rust#151510)
- @|124288 @|326176 @_|232957
- concerns: jobsteal crater regression fix (by lcnr)
- merge: Stabilize
-Zprofile-sample-use(rust#155942)- @|116266 @|125250 @|119031 @|370197 @_|343125
- no pending concerns
- merge: Ensure inferred let pattern types are well-formed (rust#157841)
- @|116266 @|124288 @|326176 @|232957
- 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: 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: continued-maintainer-interest
- concern: documentation
- “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) - “Desugar async blocks in HIR instead of MIR” compiler-team#997 (Zulip)
- “Rename the compiler files containing struct diagnostics to
diagnostics.rs” compiler-team#1003 (Zulip) - “MCP: Stabilization strategy for rustc parallel frontend” compiler-team#1005 (Zulip)
- “Decouple
BackendReprfrom ABI alignment” compiler-team#1007 (Zulip) - “rustc_lint: Allow scoped
non_ascii_identslint levels” rust#157497 - “Fix
overflowing_literalslint with repeated negation” rust#158302 - “infra: add policy covering mfa with hardware keys” rust-forge#1051
- “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: 8 months ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 11 months ago)
- concern: proposal-wording
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: about 28 days ago)
- concern: needs-champion
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 8 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: 4 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: 7 months ago)
- concern: lang
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: 3 months ago) - “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: 5 months ago)- concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: 4 months ago)- concern: complexity
- concern: fragmentation
- “Single-byte counter support in coverage instrumentation” compiler-team#1002 (Zulip) (last review activity: about 0 days ago)
- concern: question-boolean-valued-counters
- Finalized FCPs (disposition merge)
- “Fix trait method resolution on an adjusted never type” rust#156047
- “enable eager
param_envnorm in new solver” rust#156976
Backport nominations
T-compiler beta / T-compiler stable
- No beta nominations for
T-compilerthis time. - No stable nominations for
T-compilerthis time.
PRs S-waiting-on-t-compiler
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 59 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, 30 P-low regression-from-stable-to-stable
P-critical
- “dist-i686-msvc hang on lint-docs” rust#158378
- Temporarily worked around by #158379 (disables part of CI)
- Issue needs investigation, see Zulip thread
- 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
Overall, the week was fairly neutral, with no meaningful shift on most benchmarks on any of our statistics.
Triage done by @simulacrum. Revision range: 8b6558a0..7dc2c162
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.9% | [0.1%, 3.7%] | 45 |
| Regressions (secondary) | 0.9% | [0.0%, 8.0%] | 74 |
| Improvements (primary) | -0.4% | [-1.4%, -0.2%] | 34 |
| Improvements (secondary) | -4.0% | [-30.6%, -0.2%] | 57 |
| All (primary) | 0.3% | [-1.4%, 3.7%] | 79 |
2 Regressions, 1 Improvement, 7 Mixed; 5 of them in rollups 34 artifact comparisons made in total
Regressions
Rollup of 13 pull requests #158487 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.5%] | 8 |
| Regressions (secondary) | 0.4% | [0.2%, 0.6%] | 18 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.2%, 0.5%] | 8 |
Root cause is Update doc_cfg hide/show syntax
#157871. Probably worth some
follow-up since it affects lots of doc benchmarks, and at least a glance it
seems plausible this might have a simple fix (syntax changes don’t feel like
they should be meaningfully more expensive, especially in code that doesn’t use
this feature like helloworld).
resolve: Explicit Set for detecting resolution cycles #158035 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.3%] | 7 |
| Regressions (secondary) | 0.4% | [0.3%, 0.6%] | 12 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [0.1%, 0.3%] | 7 |
This primarily (outside incremental) affects unused-warnings, which is a stress test for this code. It’s expected that this change would be a slight regression, but per the PR description, this unblocks parallelization of this code, which is an important benefit.
Improvements
- Rework lint pass running #158239 (Comparison Link)
Mixed
GVN: Don’t assume nested shared references are read-only. #157346 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.5%] | 9 |
| Regressions (secondary) | 0.3% | [0.1%, 0.4%] | 11 |
| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 10 |
| Improvements (secondary) | -0.5% | [-1.1%, -0.2%] | 5 |
| All (primary) | 0.0% | [-0.4%, 0.5%] | 19 |
Soundness fix, regressions are minor.
Rollup of 35 pull requests #158342 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 7 |
| Regressions (secondary) | 0.7% | [0.1%, 1.0%] | 6 |
| Improvements (primary) | -0.3% | [-0.5%, -0.1%] | 5 |
| Improvements (secondary) | -0.1% | [-0.2%, -0.1%] | 3 |
| All (primary) | -0.1% | [-0.5%, 0.1%] | 12 |
- Improvements are fully from proc_macro simplification #157271
- Regressions are from:
Add rigid alias marker #156742 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.0% | [0.3%, 2.1%] | 22 |
| Regressions (secondary) | 1.2% | [0.3%, 3.6%] | 13 |
| Improvements (primary) | -0.1% | [-0.1%, -0.1%] | 3 |
| Improvements (secondary) | -6.0% | [-30.9%, -0.1%] | 31 |
| All (primary) | 0.8% | [-0.1%, 2.1%] | 25 |
necessary refactor for the new trait solver and I would just eat the 1.4% diesel regression.
(see more here: https://github.com/rust-lang/rust/pull/156742#issuecomment-4807181842)
Rollup of 15 pull requests #158416 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.4%, -0.1%] | 2 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.1% | [-0.4%, 0.1%] | 3 |
Non-instruction count wins from reverting a change to how we build LLVM which broke PGO. Minor regressions/wins otherwise that are maybe within noise threshold, not worth digging deeper.
Rollup of 15 pull requests #158455 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 2 |
| Regressions (secondary) | 0.2% | [0.1%, 0.2%] | 6 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | -0.3% | [-0.5%, -0.2%] | 8 |
| All (primary) | 0.0% | [-0.2%, 0.1%] | 3 |
- Add arg splat experiment initial tuple impl #153697 explains the regressions.
- New feature, some poking at optimizing perf was attempted and this was best-possible so far. Previous work on this feature improved perf so this series is still a benefit overall in some sense.
- Improvements from:
Rollup of 15 pull requests #158508 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.4% | [0.3%, 0.5%] | 6 |
| Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 43 |
| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 20 |
| All (primary) | -0.2% | [-0.3%, -0.2%] | 43 |
The change is the same as #157996, which was explicitly listed as perf. The overall improvement was deemed to be worth it.
Move std::io::Error into core #155625 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.0% | [0.5%, 2.6%] | 9 |
| Regressions (secondary) | 1.4% | [0.2%, 7.7%] | 23 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -4.7% | [-6.0%, -3.2%] | 6 |
| All (primary) | 1.0% | [0.5%, 2.6%] | 9 |
Expected mixed results since this change shuffles a lot of code around between crates/impl blocks and as a result likely tweaking how much things are inlinable. Most of the results are probably fallout from that rather than rustc performance changes in a direct sense. I don’t think we need to dig deeper here.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
Tip: let’s look at them one by one
- “Suggest only Span without source changes when source code is unavailable” rust#144585 (last review activity: 7 months ago)
- cc @Esteban Küber
- “Replace
jemallocbootstrap options withoverride-allocator” rust#155617 (last review activity: 2 months ago)- rerolled, asked who should have a look there first (any suggestions?)
- “tests/ui: use revisions for editions in several tests” rust#155498 (last review activity: 2 months ago)
- Didn’t we have a lengthy conversation about marking UI tests with editions in compiler-team#861? Is this PR related? cc @davidtwco do you know?
- “tests/ui/tuple: add annotations for reference rules” rust#155846 (last review activity: 2 months ago)
- can this be reassigned? Or does it need specific context?
- “resolve: use
#[doc(alias)]to improve function resolution diagnostics” rust#154833 (last review activity: 2 months ago)- Unsure about this: Vadim would decline this change, Esteban is instead in favor. Can perhaps anyone give a third opinion?
Next meetings’ agenda draft: hackmd link