T-compiler Meeting Agenda 2026-05-28
Announcements
- Today Rust 1.96.0 release (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).
- This is the first meeting since @_Wesley Wiser has rotated out as lead - thanks to Wesley for all of his hard work over the years as compiler team co-lead!
- … and welcome Boxy as new co-lead :-)
Other WG meetings
- @_Jana office hours time:2026-05-28T16:00:00+02:00 and time:2026-06-02T16:00:00+02:00
MCPs/FCPs
New MCPs (take a look, see if you like them!)
- “Add
-Zglobal-target-cpu” compiler-team#991 (Zulip) - “Create a new Tier 3 target:
s390x-ibm-zos” compiler-team#992 (Zulip) - “Set requirements for windows-gnu” compiler-team#993 (Zulip)
- “Add
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: 2 months ago)
- This looks pretty much dead in the water. Candidate for closing (with an advertisement period)?
- Anybody knows more about it? cc @davidtwco author mentioned you last (but very long ago)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 10 months ago)
- Work is progressing, but the lack of seconding makes it unclear the general vibe
- I had left a comment but no concrete reply
- “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 49 days ago)- There were some comments which the MCP author tried to address. I don’t see a clear consensus (or maybe there is no capacity)
- “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: 3 months ago)- Same here. Left a comment but no feedback …
- “Change the ABI of powerpc64-unknown-linux-gnu to ELFv2” compiler-team#977 (Zulip) (last review activity: 2 months ago)
- there was a bit of pushback from the maintainer of many Debian ports but the conversation turned out to be not very productive
- I think (ignoring the bad communication) there are enough reasons to close the MCP as having side-effects
- “group target modifier options under
-T” compiler-team#980 (Zulip) (last review activity: about 55 days ago)- cc: @davidtwco a question (potential concern) was just posted here
- “Create a new Tier 3 target:
powerpc-unknown-none” compiler-team#986 (Zulip) (last review activity: about 27 days ago)- Discussion on this other Zulip thread (i.e. compiler-team#988)
- “Create a new Tier 3 target:
powerpc64-unknown-none” compiler-team#987 (Zulip) (last review activity: about 27 days ago)- Discussion on this other Zulip thread (i.e. compiler-team#988)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 2 months ago)
Pending FCP requests (check your boxes!)
- merge: Stabilize stack-protector (rust#146369)
- @|116266 @|426609 @_|444933
- concerns: mitigation-enforcement (by Noratrieb)
- merge: Clean up crate type names to fix dylib vs staticlib confusion (rust#153863)
- @|124288 @|125250 @|245964 @|353056
- no pending concerns
- “transmute: fix check for whether newtypes have equal size” rust#155418
- merge: Stabilize stack-protector (rust#146369)
Things in FCP (make sure you’re good with it)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: inhibit-opts
- concern: impl-at-mir-level
- concern: lose-debuginfo-data
- “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: can-we-just-enhance-ui-suite
- concern: name-a-specific-reason
- “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) - “Add -Z dead-fn-elimination to skip codegen of BFS-unreachable functions” compiler-team#976 (Zulip)
- “Promotes 5 Thumb-mode bare-metal Arm targets to Tier 2” compiler-team#985 (Zulip)
- “Create a new Tier 3 target:
powerpc64le-unknown-none” compiler-team#988 (Zulip)- concern: baseline-features
- concern: softfloat
- “riscv: promote d, e, and f target_features to CfgStableToggleUnstable” rust#156188
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
Accepted MCPs
- “Removing the unstable ptx linker flavor” compiler-team#990 (Zulip)
MCPs blocked on unresolved concerns
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 7 months ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 10 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 7 months ago)- concern: nonsystematic-breakage
- concern: why-not-ports-rustc
- concern: version-churn
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: 3 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: 6 months ago)
- concern: lang
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: 2 months 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: 3 months ago)- concern: complexity
- concern: fragmentation
Finalized FCPs (disposition merge)
- [T-types] “Make trait refs & assoc ty paths properly induce trait object lifetime defaults” rust#129543
Backport nominations
T-compiler beta / T-compiler stable
- No beta nominations for
T-compilerthis time. - 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
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 61 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, 2 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 35 P-high, 100 P-medium, 30 P-low regression-from-stable-to-stable
P-critical
- No
P-criticalissues forT-compilerthis time.
- 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 largely positive, with most of the improvements coming from algorithm change in visibility checking: #156228.
Triage done by @panstromek. Revision range: 281c97c3..783eb8c8
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.1%, 0.7%] | 5 |
| Regressions (secondary) | 0.5% | [0.1%, 1.1%] | 16 |
| Improvements (primary) | -0.9% | [-6.6%, -0.1%] | 164 |
| Improvements (secondary) | -0.4% | [-1.3%, -0.1%] | 51 |
| All (primary) | -0.9% | [-6.6%, 0.7%] | 169 |
2 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups 34 artifact comparisons made in total
Regressions
Stabilize --remap-path-prefix in rustdoc #155307 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.7%, 0.7%] | 1 |
| Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.7% | [0.7%, 0.7%] | 1 |
nalgebra regressions are noise (return to default state after previous PR).
Rollup of 4 pull requests #156881 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 11 |
| Regressions (secondary) | 0.2% | [0.0%, 0.6%] | 12 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.9% | [-1.9%, -1.9%] | 1 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 11 |
Looks to be caused by https://github.com/rust-lang/rust/pull/156824. I couldn’t confirm this directly because we miss the unrolled build, but looking at the other PRs, one is a pure test change, and perf runs on the other two came back with no relevant changes, so this is the only one remaning.
It doesn’t seem like that big of a deal to me (mostly tiny benchmarks, incr-unchanged/patched), but seems unexpected. Some of them regress in queries that don’t seem related (match checking). Left a comment there.
Improvements
Privacy: try use queue instead of fixed-point iteration #156228 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.9% | [-6.7%, -0.1%] | 144 |
| Improvements (secondary) | -0.5% | [-1.3%, -0.1%] | 31 |
| All (primary) | -0.9% | [-6.7%, -0.1%] | 144 |
Update LLVM to 22.1.6 #156757 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
| Improvements (secondary) | -0.4% | [-0.4%, -0.4%] | 1 |
| All (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
note: this result is spurious, we got inverse results in the next PR (#155307, first PR in the regressions list).
Mixed
Make bitset would_modify_words more vectorizer-friendly #153640 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
| Improvements (primary) | -1.4% | [-2.2%, -0.7%] | 4 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -1.4% | [-2.2%, -0.7%] | 4 |
include-blob regression is noise.
Fix jump-to-def links broken by turbofish syntax #156727 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.7%, 0.7%] | 1 |
| Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
| All (primary) | 0.7% | [0.7%, 0.7%] | 1 |
Perf results are noise, this PR doesn’t change anything in the compiler. It seems that nalgebra opt became bimodal.
Rollup of 2 pull requests #156794 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 64 |
| Regressions (secondary) | 0.3% | [0.1%, 0.4%] | 38 |
| Improvements (primary) | -0.3% | [-0.5%, -0.2%] | 9 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 8 |
| All (primary) | 0.2% | [-0.5%, 0.4%] | 73 |
Caused by https://github.com/rust-lang/rust/pull/156242, already triaged by @JonathanBrouwer, addressed by @Saethlin in https://github.com/rust-lang/rust/pull/156849.
Implement fast path for derive(PartialOrd) when deriving Ord #155598 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.5%, 0.8%] | 3 |
| Regressions (secondary) | 0.7% | [0.2%, 1.0%] | 9 |
| Improvements (primary) | -0.3% | [-0.5%, -0.2%] | 20 |
| Improvements (secondary) | -0.3% | [-0.5%, -0.2%] | 5 |
| All (primary) | -0.2% | [-0.5%, 0.8%] | 23 |
Improvements mostly outweigh regressions. Results roughly match pre-merge results, so I assume the comments above still hold and this is considered fine.
Re-add call site inlining attributes #156849 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.3%, 0.4%] | 2 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 8 |
| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 66 |
| Improvements (secondary) | -0.3% | [-0.5%, -0.2%] | 42 |
| All (primary) | -0.3% | [-0.4%, 0.4%] | 68 |
Fixes the regression from https://github.com/rust-lang/rust/pull/156242, already triaged by @saethlin (author): “Perf impact is the inverse of the PR linked in the description, within typical jitter. The net effect of the two PRs is nothing.”
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- Skipping this week due to many contributors being at RustWeek
Next meetings’ agenda draft: hackmd link