T-compiler Meeting Agenda 2026-07-09
Announcements
- Today release of Rust 1.97.0, see blog post
- P-high review, round 2 (compiler-team#900), tentative scheduling:
- 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-13T16:00:00+02:00 and time:2026-07-16T16:00:00+02:00
MCPs/FCPs
New MCPs (take a look, see if you like them!)
- “More strongly point people to link to Tracking Issues in the PR template” compiler-team#1009 (Zulip)
Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
Old MCPs (not seconded, take a look)
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 9 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 35 days ago)
- concern: needs-champion
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 9 months ago)- concern: why-not-ports-rustc
- concern: version-churn
- concern: nonsystematic-breakage
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: 4 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: 8 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
- “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 27 days ago) - “Single-byte counter support in coverage instrumentation” compiler-team#1002 (Zulip) (last review activity: about 1 days ago)
- concern: question-boolean-valued-counters
- concern: state-of-the-impl
- “Add testing for lint machinery at runtime” compiler-team#1004 (Zulip) (last review activity: about 12 days ago)
- “Move
LayoutandTyAndLayouttorustc_type_ir” compiler-team#1008 (Zulip) (last review activity: about 6 days ago)- concern: type_ir-is-a-pain
Pending FCP requests (check your boxes!)
- merge: Promote
wasm32-wasip3to Tier 2 (compiler-team#1001)- @|116266 @|119031 @_|370197
- 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: lose-debuginfo-data
- concern: impl-at-mir-level
- concern: inhibit-opts
- “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) - “Add
target_feature_available_at_call_site” compiler-team#1010 (Zulip)- concern: debugging-the-llvmir
- “Let the OS handle stack growth” compiler-team#1011 (Zulip)
- concern: back-to-the-past
- “Fix
overflowing_literalslint with repeated negation” rust#158302
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
Accepted MCPs
- “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)
Finalized FCPs (disposition merge)
- [T-types] “Infer all anonymous lifetimes in assoc consts as
'static” rust#156508 - [T-compiler] “enable eager
param_envnorm in new solver” rust#156976 - [T-types] “consider subtyping when checking if an infer var is sized” rust#157820
- [T-types] “Infer all anonymous lifetimes in assoc consts as
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
- 58 T-compiler P-high issues
- 0 P-critical, 0 P-high, 0 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 0 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
- visited last week, we disabled the tests for this compile target in #158379 to unblock the CI
- target demotion discussed here, seems the agreement is to demote down to tier 2 without host tools
- opened a poll to contrast opinions better
- 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 dominated by wild swings in benchmarks of the new-solver, which is not enabled by default, yet. Apart from that, we got a very few notable changes, only one unexpected speedup from a bugfix in rustdoc.
Triage done by @panstromek. Revision range: 7dc2c162..3659db0d
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions (secondary) | 162.1% | [0.2%, 1116.3%] | 20 |
| Improvements (primary) | -1.4% | [-8.4%, -0.1%] | 7 |
| Improvements (secondary) | -1.1% | [-8.4%, -0.1%] | 11 |
| All (primary) | -0.9% | [-8.4%, 0.2%] | 10 |
1 Regression, 1 Improvement, 4 Mixed; 3 of them in rollups 17 artifact comparisons made in total
Regressions
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 |
Regression matches pre-merge run, justified by https://github.com/rust-lang/rust/pull/158035#issuecomment-4833952569: “It looks acceptable now, unused-warnings is a stress benchmark with thousands of imports.” (@petrochenkov)
This is also a stepping stone towards future performance improvements (parallel compiler). IIUC the primary regressions were mostly mitigated by https://github.com/rust-lang/rust/pull/158604, mentioned below.
Improvements
- Use
LowerAvailableDepth::Nofor normalizes-to goal itself instead of its nested goals #158705 (Comparison Link)
Mixed
Rollup of 7 pull requests #158629 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
| Improvements (primary) | -8.5% | [-8.5%, -8.5%] | 1 |
| Improvements (secondary) | -8.5% | [-8.5%, -8.5%] | 1 |
| All (primary) | -8.5% | [-8.5%, -8.5%] | 1 |
include-blob regression is probably bimodal noise again, improvement in serde doc is https://github.com/rust-lang/rust/pull/158569.
Rollup of 6 pull requests #158639 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 30.5% | [0.3%, 51.1%] | 5 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.1%] | 2 |
| All (primary) | - | - | 0 |
Regression caused by https://github.com/rust-lang/rust/pull/157718, already mitigated by https://github.com/rust-lang/rust/pull/158705 (mentioned above).
resolve: no allocation in resolve_ident_in(_local)_module_* #158604 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.3%] | 3 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.4%, -0.2%] | 26 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.1%] | 5 |
| All (primary) | -0.2% | [-0.4%, 0.3%] | 29 |
Improvements outweigh regressions. Looks like this also mitigates the primary regressions from https://github.com/rust-lang/rust/pull/158035. Regressions are only in tiny incr-unchanged scenarios.
Rollup of 21 pull requests #158795 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 441.1% | [0.2%, 1116.0%] | 7 |
| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 2 |
| Improvements (secondary) | -0.6% | [-1.2%, -0.3%] | 6 |
| All (primary) | -0.3% | [-0.3%, -0.2%] | 2 |
Regressions caused by https://github.com/rust-lang/rust/pull/158606#issuecomment-4890167477
Regressions are limited to new-solver, which is not enabled by default. I think we can mark this as triaged and let the types team follow up on this as they see fit.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Use
horde’sSyncTablefor default query caches andCtxtInterners” rust#153826 (last review activity: 2 months ago)- This PR is proposing adding the
hordecrate to our dependencies. - Left a ping for a vibecheck here
- Note about our docs: is there a path to proposing new dependencies? Maybe an MCP? I checked on
{rustc,forge}.r-l.obut didn’t find a clear answer (or maybe I missed it)
- This PR is proposing adding the
- “Move Region from rustc_middle to rustc_type_ir” rust#154989 (last review activity: 2 months ago)
- I think this is waiting on this impl in rust-analyzer, see https://github.com/rust-lang/rust/pull/154989#discussion_r3079993632 cc @Chayim Refael Friedman
- “borrowck: clarify an E0502 label for &self.field vs mutable self” rust#155116 (last review activity: 2 months ago)
- cc @Esteban Küber
- “Region inference: split results from RegionInferenceContext” rust#151688 (last review activity: 4 months ago)
- “adds better error message for temporary value does not live long enough” rust#154810 (last review activity: 3 months ago)
- cc @Yuki Okushi
Next meetings’ agenda draft: hackmd link