T-compiler Meeting Agenda 2026-03-19
Announcements
- 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 WG meetings
- None
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Change the ABI of powerpc64-unknown-linux-gnu to ELFv2” compiler-team#977 (Zulip)
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 7 months ago)
- “Rename
hexagon-unknown-{none-elf,linux-musl}targets” compiler-team#921 (Zulip) (last review activity: 5 months ago) - “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 48 days ago) - “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: about 48 days ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: about 48 days ago) - “Tier 3 targets proposal: LoongArch UEFI” compiler-team#953 (Zulip) (last review activity: about 48 days ago)
- “Emit retags in codegen” compiler-team#958 (Zulip) (last review activity: about 48 days ago)
- “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: about 48 days ago)
- Pending FCP requests (check your boxes!)
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- @|124288 @|123586 @|125250 @|119031 @_|353056
- no pending concerns
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
- no pending checkboxes
- concerns: stabilization-scope (by wesleywiser)
- merge: Make trait refs & assoc ty paths properly induce trait object lifetime defaults (rust#129543)
- @|116009 @|326176 @|216206 @|232957
- no pending concerns
- merge: Stabilize stack-protector (rust#146369)
- @|116266 @|426609 @_|444933
- concerns: mitigation-enforcement (by Noratrieb)
- merge: Stabilize the
supertrait_item_shadowingfeature (rust#148605)- @|124288 @|326176
- concerns: implementation-confidence (by BoxyUwU) inconsistent-name-res-semantics (by BoxyUwU)
- “Implement lint for black_boxing ZSTs” rust#150037
- merge: WF checks on closure arguments. (rust#151510)
- @|124288 @|326176 @_|232957
- concerns: jobsteal crater regression fix (by lcnr)
- merge: Clean up crate type names to fix dylib vs staticlib confusion (rust#153863)
- @|120518 @|116266 @|424212 @|124288 @|123586 @|270929 @|125250 @|116107 @|248906 @|120179 @|245964 @|116118 @|415544 @|296292 @_|353056
- concerns: cargo-impact (by epage)
- 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: lose-debuginfo-data
- concern: inhibit-opts
- concern: impl-at-mir-level
- “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) - “Promote aarch64-unknown-freebsd to Tier 2 with host tools” compiler-team#961 (Zulip)
- “Remove -Csoft-float” compiler-team#971 (Zulip)
- “allow
incomplete_featuresin UI tests” compiler-team#974 (Zulip) - “Add
-Zsanitizer=kernel-hwaddress” compiler-team#975 (Zulip) - “rustc: Stop passing
--allow-undefinedon wasm targets” rust#149868 - “switch to v0 mangling by default on stable” rust#151994
- “privacy: Fix type privacy holes when it doesn’t cause too much breakage” rust#152543
- “1.95 beta regression: “malformed
featureattribute input”” rust#153764
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Accepted MCPs
- “Parse unstable keywords for experimental syntax” compiler-team#945 (Zulip)
- MCPs blocked on unresolved concerns
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 9 months ago)
- concern: path-to-stabilization
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 5 months ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 8 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 5 months ago)- concern: version-churn
- concern: why-not-ports-rustc
- concern: nonsystematic-breakage
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: about 33 days 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: 4 months ago)
- concern: lang
- “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: about 48 days ago)- concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: about 34 days ago)- concern: complexity
- concern: fragmentation
- “Add -Z dead-fn-elimination to skip codegen of BFS-unreachable functions” compiler-team#976 (Zulip)
- concern: relation-with-project-goal
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 9 months ago)
- Finalized FCPs (disposition merge)
- None
- Other teams finalized FCPs
- [T-types] “Always make tuple elements a coercion site” rust#147834
- [T-lang / T-rustdoc] “Stabilize Frontmatter” rust#148051
- [T-types] “Always check
ConstArgHasTypeeven when otherwise ignoring” rust#152931
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Don’t look for non-type-level assoc consts when checking trait object types” rust#153738
- Authored by fmease
- Closes #153731
- Voting Zulip topic, in favor
- If approved, an additional PR #153958 will need to be backported (thanks @fmease!)
- :beta: “Don’t add empty target features for target-cpu=native on macOS” rust#153763
- Authored by nikic (thanks!!)
- Fixes #153397 (P-critical issue breaking compilation on Apple M5/M4)
- Voting Zulip topic, def. in favor
- :beta: “Do not shallow resolve to root var while fudging” rust#153869
- Authored by ShoyuVanilla
- Meant to address #153816 and #153849, still in review
- Voting Zulip topic, seems a revert of #151380 looks preferable
- left a comment: is this approved for merge? See comment
- :beta: “Fix some suggestions of the
for-loops-over-fallibleslint” rust#153913- Authored by JohnTitor
- Only FIY: approved but not yet merged, we can revisit next week
- Fixes Fix #148114, #147973 and rust-lang/rust-clippy#16133
- Voting Zulip topic
- 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
- 1 T-compiler P-critical issues
- 62 T-compiler P-high issues
- 1 P-critical, 4 P-high, 2 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, 37 P-high, 100 P-medium, 29 P-low regression-from-stable-to-stable
P-critical
- “[ICE]: LLVM ERROR “Broken module” with -C target-cpu=native on aarch64-apple-darwin (Apple M5, LLVM 22.1.0)” rust#153397
- Addressed by #153763
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “1.95 beta regression affecting old versions of
bitvec: “… is not dyn compatible”” rust#153731- Addressed in #153738
- “Significant compilation time regression starting in v1.95.0-nightly (bevy)” rust#153910
- Being investigated (if anyone can help, see comment), seems originating from #149904. An MCVE could also be helpful
- “Complex EH flow miscompiled on wasm” rust#153948
- being investigated, @_hoodmane points to an LLVM upgrade (comment), opened a fix upstream llvm-project#187302
- “1.95 beta regression: “no method named
acceptfound for struct…”” rust#153849- Could be fixed by #153869 (or by a revert)
Note: See here there is a number of other beta regressions from the crater run. They are investigated, unsure about their impact.
- “1.95 beta regression: “displacement … is not within [-2147483648, 2147483647]”” rust#153852
- Caused by llvm-project#75747 (which could be “working as intended”)
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
Another fairly quiet week, with few changes and overall neutral performance.
Triage done by @simulacrum. Revision range: 3945997a..5b61449e
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.4%] | 53 |
| Regressions (secondary) | 0.2% | [0.0%, 0.6%] | 45 |
| Improvements (primary) | -1.8% | [-6.7%, -0.2%] | 4 |
| Improvements (secondary) | -1.2% | [-8.5%, -0.2%] | 10 |
| All (primary) | 0.1% | [-6.7%, 0.4%] | 57 |
1 Regression, 1 Improvement, 2 Mixed; 3 of them in rollups 35 artifact comparisons made in total
Regressions
Rollup of 13 pull requests #153672 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.4%] | 10 |
| Regressions (secondary) | 0.3% | [0.0%, 0.5%] | 44 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [0.1%, 0.4%] | 10 |
Due to Implement coercions between &pin (mut|const) T and &(mut) T when T: Unpin and Refactor ActiveJobGuard.
The first of those seems like an unavoidable regression (doing more work) and regressions are limited to secondary benchmarks which stress coercions and the second had some investigation done but didn’t lead to success for CI-built artifacts: see this comment for more details.
Improvements
Rollup of 4 pull requests #153642 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.2%, -0.1%] | 3 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.1%] | 15 |
| All (primary) | -0.2% | [-0.2%, -0.1%] | 3 |
Affects benchmarks that have been known to be spurious… they also regressed in the next commit (rollup just above) so it’s hard to say how real this improvement is.
Mixed
Rollup of 12 pull requests #153741 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.2%] | 4 |
| Regressions (secondary) | 0.0% | [0.0%, 0.0%] | 3 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.1%] | 13 |
| All (primary) | 0.1% | [-0.2%, 0.2%] | 5 |
Unclear what the root cause of the regression is, which is mostly affecting just diesel. Secondary benchmarks have a bunch of improvements. Marking as triaged since the regression seems fairly limited in scope and is probably due to a cleanup that’s worth doing even with the small perf cost. See comment for cachegrind diff.
rustdoc-search: update to stringdex 0.0.6 #153799 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 1 |
| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
| Improvements (primary) | -3.5% | [-6.8%, -0.2%] | 2 |
| Improvements (secondary) | -8.6% | [-8.6%, -8.6%] | 1 |
| All (primary) | -2.2% | [-6.8%, 0.4%] | 3 |
Fairly expected to be a mixed result (as most heuristic/optimization tuning things are). Improvements seem to outweigh regressions in practice, though few benchmarks are affected.
Nominated Issues
- “Clean up crate type names to fix dylib vs staticlib confusion” rust#153863
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Add support for xray in aarch64 unknown none target” rust#148666 (last review activity: 4 months ago)
- cc: @Wesley Wiser
- “Stabilize stack-protector” rust#146369 (last review activity: 3 months ago)
- IIUC this is/was waiting on rfcs#3855, now in FCP, see comment cc: @Jieyou Xu @Santiago Pastorino @Wesley Wiser
- “Add AddrspacePtr for pointers to non-0 addrspaces” rust#150452 (last review activity: 2 months ago)
- “naked functions: respect
function-sections” rust#147811 (last review activity: 2 months ago)- cc: @Amanieu d’Antras (last ping 2 weeks ago)
Next meetings’ agenda draft: hackmd link