T-compiler Meeting Agenda 2025-06-19
Announcements
- Next week release of rustc stable 1.88 draft release notes
- 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
- WG-async design meeting time:2025-06-19T19:00:00+02:00
- Stable MIR weekly meeting time:2025-06-19T17:00:00+02:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Upgrade
*-linux-musltargets to musl 1.2.5” compiler-team#887 (Zulip)- PR: https://github.com/rust-lang/rust/pull/142682
- Question: do we want to re-crater the PR?
- A crater run in July 2024 found only about 2% of rust projects were still affected
- Expected minimal breakage, most should be resolved by a cargo update
- Crates breakage report from last year
- Draft blog post at https://github.com/rust-lang/blog.rust-lang.org/pull/1641
- “Upgrade
- 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: about 1 days ago)
- concern: path-to-stabilization
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: 8 months ago)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: 8 months ago)
- “Rename “dylib” crate type to “rdylib” (keep old name but deprecate it), and maybe do the same for “staticlib” → “cstaticlib”” compiler-team#825 (Zulip) (last review activity: 5 months ago)
- “Compile UI tests as libraries by default” compiler-team#842 (Zulip) (last review activity: 3 months ago)
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 2 months ago)
- “Unify ui test inline error annotation style” compiler-team#859 (Zulip) (last review activity: 2 months ago)
- Opened a poll on Zulip about the preferred syntax, @T-compiler/meeting feel free to leave your comments
- “Run the UI test suite with multiple editions” compiler-team#861 (Zulip) (last review activity: about 15 days ago)
- concern: edition-directive-meaning
- “Promote tier 3 riscv32 ESP-IDF targets to tier 2” compiler-team#864 (Zulip) (last review activity: about 6 days ago)
- “Add support for specifying split-debuginfo=unpacked output directory” compiler-team#871 (Zulip) (last review activity: about 47 days ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: about 20 days ago)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 1 days ago)
- Pending FCP requests (check your boxes!)
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
- no pending checkboxes
- concerns: stabilization-scope (by wesleywiser)
- merge: Add
target_env = "macabi"andtarget_env = "sim"(rust#139451)- @|116266 @|119031 @_|353056
- no pending concerns
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
- Things in FCP (make sure you’re good with it)
- “setup typos check in CI (for rust repo)” compiler-team#817 (Zulip)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: inhibit-opts
- concern: lose-debuginfo-data
- concern: impl-at-mir-level
- “Add one more “late metadata”/“digest” file to rlib archives” compiler-team#853 (Zulip)
- “Constrain process required for some user-facing changes to lower support tier targets” compiler-team#884 (Zulip)
- “Expose
target_abi = "elfv{1,2}"onpowerpc64-any-unixy-elfytargets” compiler-team#885 (Zulip) - “Use lld by default on
x86_64-unknown-linux-gnustable” rust#140525
- Accepted MCPs
- “Introduce debug information to statements in MIR” compiler-team#867 (Zulip)
- “Retroactive MCP for the Rust for Linux Ecosystem Test Job” compiler-team#874 (Zulip)
- “Promote 64-bit windows-gnullvm Targets to Tier 2 with Host Tools” compiler-team#877 (Zulip)
- “Eliminate
ast::ptr::P” compiler-team#878 (Zulip) - “Add
-Z hint-mostly-unusedoption to hint that most of a crate’s API surface will be unused” compiler-team#883 (Zulip)
- MCPs blocked on unresolved concerns
- Finalized FCPs (disposition merge)
- “Add
--print host-tupleto print host target tuple” rust#125579 - “make unsupported_calling_conventions a hard error” rust#129935
- “Fix ICE when passing DefId-creating args to legacy_const_generics.” rust#130443
- “Stabilize WebAssembly
multivalue,reference-types, andtail-calltarget features” rust#131080 - “Lint on combining
#[no_mangle]and#[export_name]” rust#131558 - “Stabilize
-Zdwarf-versionas-Cdwarf-version” rust#136926 - “Split up the
unknown_or_malformed_diagnostic_attributeslint” rust#140717
- “Add
- Other teams finalized FCPs
- “Allow dropping
dyn Traitprincipal” rust#126660 - “Stabilize
derive(CoercePointee)” rust#133820 - “Specify the behavior of
file!” rust#134442 - “Lint on fn pointers comparisons in external macros” rust#134536
- “Remove backticks from
ShouldPanic::YesWithMessage’sTrFailedMsg” rust#136160 - “Sized Hierarchy: Part I” rust#137944
- “const-eval: allow constants to refer to mutable/external memory, but reject such constants as patterns” rust#140942
- “Allow volatile access to non-Rust memory, including address 0” rust#141260
- “builtin dyn impl no guide inference” rust#141352
- “Add (back)
unsupported_calling_conventionslint to reject more invalid calling conventions” rust#141435 - “Document representation of
Option<unsafe fn()>” rust#141447 - “Stabilize
feature(generic_arg_infer)” rust#141610 - “Make the
dangerous_implicit_autorefslint deny-by-default” rust#141661 - “Report never type lints in dependencies” rust#141937
- “Allow dropping
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Make the assertion in
Ident::newdebug-only.” rust#140880- Authored by nnethercote
- Fixes #140252, a perf regression (perf win report), merged 3 days ago
- Voting Zulip topic (in favor)
- :beta: “Avoid creating an empty identifer in
Symbol::to_ident_string.” rust#141318- Authored by nnethercote
- Fixes the root cause for an ICE in #140884 (and helps also with #140880, which fixes the symptoms), merged 3 days ago
- Voting Zulip topic (in favor)
- :beta: “Update to LLVM 20.1.7” rust#142447
- Authored by dianqk, (vibe check) nomination from @_apiraino
- Voting Zulip topic, (would decline because too close to the release and uncertain advantages)
- 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-team
- “Use lld by default on
x86_64-unknown-linux-gnustable” rust#140525- Entered in FCP 2 days ago
- Issues in progress or waiting on other teams
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 58 T-compiler P-high issues
- 0 P-critical, 0 P-high, 0 P-medium, 3 P-low regression-from-stable-to-beta
- 0 P-critical, 1 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 32 P-high, 100 P-medium, 21 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
Relatively quiet week, with a few improvements to benchmarks leveraging the new trait solver.
Triage done by @kobzol. Revision range: c31cccb7..45acf54e
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.5%] | 14 |
| Regressions (secondary) | 0.3% | [0.1%, 0.5%] | 52 |
| Improvements (primary) | -0.5% | [-4.8%, -0.1%] | 68 |
| Improvements (secondary) | -4.3% | [-56.5%, -0.1%] | 85 |
| All (primary) | -0.4% | [-4.8%, 0.5%] | 82 |
3 Regressions, 7 Improvements, 4 Mixed; 4 of them in rollups 51 artifact comparisons made in total
Regressions
Rollup of 16 pull requests #142299 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.1%, 0.7%] | 8 |
| Regressions (secondary) | 0.4% | [0.2%, 1.1%] | 37 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [-0.2%, 0.7%] | 9 |
Infrastructure for lints during attribute parsing, specifically duplicate usages of attributes #138164 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.1%, 1.0%] | 107 |
| Regressions (secondary) | 1.0% | [0.1%, 3.1%] | 56 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.5% | [0.1%, 1.0%] | 107 |
- Regression was fixed in #142455.
- Marked as triaged.
Rollup of 9 pull requests #142443 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.3%] | 7 |
| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 22 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [0.1%, 0.3%] | 7 |
- Most of the (small) regressions seem to be caused by #142308, which only updates dependencies.
- Marked as triaged.
Improvements
Rollup of 10 pull requests #142392 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.8% | [-4.9%, -0.1%] | 37 |
| Improvements (secondary) | -1.4% | [-7.7%, -0.2%] | 72 |
| All (primary) | -0.8% | [-4.9%, -0.1%] | 37 |
[perf] GenericArgs-related: Change asserts to debug asserts & use more slice interning over iterable interning #142289 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.3%, -0.1%] | 15 |
| Improvements (secondary) | -1.2% | [-4.7%, -0.1%] | 13 |
| All (primary) | -0.2% | [-0.3%, -0.1%] | 15 |
move fast reject into inner #142355 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.5%, -0.1%] | 15 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.4% | [-0.5%, -0.1%] | 15 |
early linting: avoid redundant calls to check_id #142398 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
| Improvements (primary) | -0.3% | [-0.6%, -0.1%] | 29 |
| Improvements (secondary) | -0.4% | [-1.0%, -0.2%] | 31 |
| All (primary) | -0.3% | [-0.6%, -0.1%] | 29 |
Don’t fold ExternalConstraintsData when it’s empty #142430 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.5% | [-0.7%, -0.2%] | 11 |
| All (primary) | - | - | 0 |
collect delayed lints in hir_crate_items #142455 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
| Improvements (primary) | -0.4% | [-0.8%, -0.2%] | 87 |
| Improvements (secondary) | -1.0% | [-2.5%, -0.1%] | 42 |
| All (primary) | -0.4% | [-0.8%, -0.2%] | 87 |
use MixedBitSet for borrows-in-scope dataflow analysis #142471 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.7% | [-0.7%, -0.6%] | 2 |
| Improvements (secondary) | -0.6% | [-0.7%, -0.4%] | 5 |
| All (primary) | -0.7% | [-0.7%, -0.6%] | 2 |
Mixed
cache param_env canonicalization #141451 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.5%, 0.5%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -18.3% | [-56.0%, -0.2%] | 13 |
| All (primary) | 0.5% | [0.5%, 0.5%] | 1 |
- The single regression was noise.
- Marked as triaged.
Remove check_mod_loops query and run the checks per-body instead #141883 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.3%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 8 |
| All (primary) | - | - | 0 |
- Tiny regressions and improvements in secondary benchmarks, it’s a wash.
- Marked as triaged.
Make root vars more stable #142090 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.1% | [0.1%, 0.1%] | 1 |
| Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 2 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.9% | [-1.2%, -0.4%] | 9 |
| All (primary) | 0.1% | [0.1%, 0.1%] | 1 |
- The single regression on a primary benchmark is a doc build and it’s super tiny, the rest are tiny improvements.
- Marked as triaged.
Rollup of 10 pull requests #142442 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.3%] | 9 |
| Regressions (secondary) | 0.2% | [0.1%, 0.3%] | 21 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.1%] | 5 |
| All (primary) | 0.2% | [0.1%, 0.3%] | 9 |
- Several PRs were tried, but so far we haven’t been able to figure out what caused the regression.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Add regression test for nested replacement ranges in cfg_eval” rust#139286 (last review activity: 2 months ago)
- cc: @*fmease
- “make
tidy-alphabeticaluse a natural sort” rust#141311 (last review activity: about 28 days ago)- @nora (Noratrieb)
- “Distinguish delim kind to decide whether to emit unexpected closing delimiter” rust#138554 (last review activity: about 57 days ago)
- cc: @yukang
Next meetings’ agenda draft: hackmd link