T-compiler Meeting Agenda 2026-08-20
Announcements
- Today, Rust 1.98 is out, blog post
- 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-08-24T11:00:00+02:00 and time:2026-08-27T11:00:00+02:00
MCPs/FCPs
New MCPs (take a look, see if you like them!)
- “Introduce new -C flag for cross-target control of stack walking features” compiler-team#1027 (Zulip)
- “LLVM AllocToken and Heap Partitioning Support for Rust” compiler-team#1032 (Zulip)
- “Expose
target_abi = "pauthtest"” compiler-team#1033 (Zulip)
Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
Old MCPs (not seconded, take a look)
- “
{cwd}placeholder in –remap-path-prefix” compiler-team#998 ([Zulip](@rustbot label +major-change +T-compiler)) (last review activity: 2 months ago) - “Add testing for lint machinery at runtime” compiler-team#1004 (Zulip) (last review activity: about 53 days ago)
- “More strongly point people to link to Tracking Issues in the PR template” compiler-team#1009 (Zulip) (last review activity: about 40 days ago)
- “Add -Z stack-protector-guard” compiler-team#1013 (Zulip) (last review activity: about 21 days ago)
- “MCP: Add -Zasync-panic for binary size” compiler-team#1016 (Zulip) (last review activity: about 26 days ago)
- “Add
codeview_annotationintrinsic” compiler-team#1026 (Zulip) (last review activity: about 2 days ago)
- “
Pending FCP requests (check your boxes!)
- merge: WF checks on closure arguments and improved type-test promotion. (rust#151510)
- @|326176 @|232957
- concerns: jobsteal crater regression fix (by lcnr)
- merge: Stabilize
optimizeattribute (rust#157273)- @|116009 @|125270 @|370197 @|343125
- concerns: should-apply-to-closures (by tmandry) make-optimize-none-be-c-opt-level-0 (by scottmcm)
- merge: rustc: Stabilize the WebAssembly
wide-arithmeticfeature (rust#160877)- @|116266 @|119031 @|370197 @|343125
- no pending concerns
- merge: WF checks on closure arguments and improved type-test promotion. (rust#151510)
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
- “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
- “Expose
target_abi = "v8plus"on sparc-unknown-linux-gnu” compiler-team#1028 (Zulip) - “Stop using dlltool for generating import libraries on MinGW” compiler-team#1029 (Zulip)
- “Make let-else respect macro_rules expr metavariable grouping” rust#158515
- “target_features: sse (or at least avx2) is incompatible with soft-float ABI” rust#160302
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
Accepted MCPs
- “Wasm proc macro support” compiler-team#1017 (Zulip)
- “Encode OpenBSD
-currentversion in targets’target_env” compiler-team#1018 (Zulip) - “Implement a naming convention for lint/diagnostic-only
rustc_attrs” compiler-team#1021 (Zulip)
MCPs blocked on unresolved concerns
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 2 months ago)
- concern: needs-champion
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 0 days ago) - “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: 6 months ago)- concern: not worth the complexity
- “Single-byte counter support in coverage instrumentation” compiler-team#1002 (Zulip) (last review activity: about 42 days ago)
- concern: question-boolean-valued-counters
- concern: state-of-the-impl
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 2 months ago)
Finalized FCPs (disposition merge)
- [T-compiler] “Error on projection of dyn noncompat type in old trait solver” rust#154992
- [T-compiler] “Stabilize
-Zprofile-sample-use” rust#155942 - [T-compiler] “Ensure inferred let pattern types are well-formed” rust#157841
- [T-compiler] “Shallow resolve ty and const vars to their root vars, attempt 2” rust#158447
- [T-compiler] “PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian” rust#160441
- [T-compiler] “enable next solver by default in orphanck” rust#160668
Backport nominations
(all async approved, mentioned here for the record)
T-compiler beta / T-compiler stable
:beta: (1.98) revert of “riscv: promote d, e, and f target_features to CfgStableToggleUnstable” rust#161064
- Authored by beetrees
- Reverts #156188
:beta: (1.100.0) “fix buggy MaybeDangling<&T> validation logic” rust#161125
- Authored by RalfJ
- Fixes a critical regression caused by #160749, issue tracked in https://github.com/rust-lang/miri/pull/5252
- Voting Zulip topic, all in favor
:beta: (1.100.0) “resolving cyclic glob vis-max” rust#161024
- Authored by calvinrp
- Voting Zulip topic, all in favor
- Fixes #160685 a p-high regression found by a crater run (1 crate), now on stable
No stable nominations for
T-compilerthis time.
PRs S-waiting-on-t-compiler
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 63 T-compiler P-high issues
- 0 P-critical, 1 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, 32 P-high, 100 P-medium, 30 P-low regression-from-stable-to-stable
P-critical
- No new
P-criticalissues forT-compilerthis time.
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “Rust warns pub glob export is unused” rust#160691
- Vadim self-assigned
- A smaller reproduction would be welcome (in case anyone has time to help)
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
There were almost no regressions this week, while the next trait solver saw several significant performance improvements!
Triage done by @kobzol. Revision range: 771916f9..8fa1c96c
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.2%, 0.5%] | 6 |
| Regressions (secondary) | 0.6% | [0.2%, 1.0%] | 17 |
| Improvements (primary) | -0.5% | [-1.7%, -0.2%] | 166 |
| Improvements (secondary) | -2.3% | [-16.0%, -0.1%] | 219 |
| All (primary) | -0.5% | [-1.7%, 0.5%] | 172 |
0 Regressions, 6 Improvements, 7 Mixed; 4 of them in rollups 50 artifact comparisons made in total
Improvements
- Rollup of 11 pull requests #160830 (Comparison Link)
- Shallow resolve ty and const vars to their root vars, attempt 2 #158447 (Comparison Link)
- Optimize new solver unification table ops #160801 (Comparison Link)
- Use
TyOrConstInferVarin the next solver, fix #158441 #158436 (Comparison Link) - Three new-solver speedups #160605 (Comparison Link)
- Simplify
MaybeBorrowedLocals#160889 (Comparison Link)
Mixed
Increase the default stack size to 16 MiB and remove ensure_sufficient_stack #160535 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.9% | [0.9%, 0.9%] | 6 |
| Improvements (primary) | -0.5% | [-1.8%, -0.2%] | 183 |
| Improvements (secondary) | -0.8% | [-2.9%, -0.2%] | 209 |
| All (primary) | -0.5% | [-1.8%, -0.2%] | 183 |
- One tiny regression on a secondary benchmark, otherwise everything is green.
- Marked as triaged.
Rollup of 13 pull requests #161014 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.8%] | 15 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 2 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -5.5% | [-8.9%, -1.5%] | 4 |
| All (primary) | 0.3% | [0.1%, 0.8%] | 15 |
Rollup of 23 pull requests #161075 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.2%, 1.5%] | 19 |
| Regressions (secondary) | 0.8% | [0.0%, 1.7%] | 51 |
| Improvements (primary) | -0.2% | [-0.2%, -0.1%] | 2 |
| Improvements (secondary) | -0.8% | [-1.6%, -0.6%] | 6 |
| All (primary) | 0.5% | [-0.2%, 1.5%] | 21 |
stop using fully_perform_locally with the next solver, it’s worse (perf fix for unic-ucd) #160982 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 2.0% | [1.4%, 3.1%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -2.2% | [-11.8%, -0.2%] | 20 |
| All (primary) | - | - | 0 |
- Only next solver changes, more wins than regressions.
- Marked as triaged.
Avoid allocations when canonicalizing #161077 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 2 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.1% | [-3.4%, -0.2%] | 25 |
| All (primary) | 0.1% | [0.1%, 0.1%] | 2 |
- Several nice wins for the next trait solver, and only one tiny regression on
libc. - Marked as triaged.
Rollup of 5 pull requests #161134 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.5% | [1.5%, 1.5%] | 1 |
| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 3 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.6% | [-0.2%, 1.5%] | 2 |
- The
imageblip is noise, otherwise essentially no changes. - Marked as triaged.
Single-byte ASCII searcher for StrSearcherImpl(pattern.rs) #160408 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
| Improvements (primary) | -1.0% | [-1.6%, -0.4%] | 2 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.6% | [-1.6%, 0.2%] | 3 |
- The
imageblip looks like noise spike returning back, but in general there were almost no significant changes on icounts. - Marked as triaged.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Add post-mono MIR optimizations” rust#156858 (last review activity: 2 months ago)
- PR author is a bit stuck, can anyone with MIR expertise help?
- “Codegen Overloaded LLVM intrinsics based on their name” rust#157145 (last review activity: 2 months ago)
- left a ping to LLM folks
- “Track items behind
cfg_selectin the same way we do forcfg” rust#157218 (last review activity: 2 months ago)- cc @Jana Dönszelmann (IIUC)
- “Deny partial
-Z stack-protectorby default in all editions” rust#157941 (last review activity: 2 months ago)- Does this need to go through some decisional process? MCP or lang-experiment?- TODO
Next week we will skip the meeting