T-compiler Meeting Agenda 2025-03-06
Announcements
- Tomorrow time:2025-03-07T09:00:00-06:00: backlog bonanza cleanup compiler-team#484
- RustWeek in the Netherland May, 13-17th: join the conversation and suggest topics for talks! There are short-to-medium slots (Zulip discussion)
- 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-03-03T19:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Compile UI tests as libraries by default” compiler-team#842 (Zulip)
- “Policy: Require MCP and relevant team nominations for adding (ecosystem, custom codegen backend) testing jobs that would block PR/Merge CI and require documenting failure protocol” compiler-team#845 (Zulip)
- 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: 5 months ago)
- @topic: can we second this? Any concern?
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: 4 months ago)
- @topic: Can anyone with some context have a look at it? thanks
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: 4 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: about 55 days ago)
- “
rustc_targetfor rust-analyzer” compiler-team#839 (Zulip) (last review activity: about 12 days ago)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 5 months ago)
- Pending FCP requests (check your boxes!)
- “sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets” rust#123617
- “Warn about C-style octal literals” rust#131309
- “Stabilize
-Zdwarf-versionas-Cdwarf-version” rust#136926
- Things in FCP (make sure you’re good with it)
- “Add
--print=crate-root-lint-levelsto retrieve lints levels” compiler-team#833 (Zulip) - “Give integer literals a sign instead of relying on negation expressions” compiler-team#835 (Zulip)
- “Enable
warn(unused_crate_dependencies)onrustc_*crates” compiler-team#844 (Zulip)
- “Add
- Accepted MCPs
- “Add
target_abi = "[ilp]{2,3}[3264]{2}[fdq]?"to all RV[3264]{2}I targets” compiler-team#830 (Zulip) - “Add
--print=supported-crate-types” compiler-team#836 (Zulip) - “Ban projecting into
repr(simd)types” compiler-team#838 (Zulip) - “Remove
i586-pc-windows-msvc” compiler-team#840 (Zulip)
- “Add
- MCPs blocked on unresolved concerns
- “Add
evex512target feature for AVX10” compiler-team#778 (Zulip) (last review activity: about 5 days ago)- concern: design-around-naming-scheme
- “Add
-C hint-mostly-unusedoption” compiler-team#829 (Zulip) (last review activity: about 37 days ago) - “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- concern: automatic-sync
- “setup typos check in CI (for rust repo)” compiler-team#817 (Zulip)
- concern: contributor friction
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: lose-debuginfo-data
- concern: inhibit-opts
- concern: impl-at-mir-level
- @Wesley Wiser thanks for following up on this (saw your recent comments)
- “Add
- 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
- “Add
- Other teams finalized FCPs
- “Add lint against function pointer comparisons” rust#118833
- “Fixup Windows verbatim paths when used with the
include!macro” rust#125205 - “Uplift
clippy::double_neglint asdouble_negations” rust#126604 - “Allow dropping
dyn Traitprincipal” rust#126660 - “atomics: allow atomic and non-atomic reads to race” rust#128778
- “Lint against getting pointers from immediately dropped temporaries” rust#128985
- “Do not consider match/let/ref of place that evaluates to
!to diverge, disallow coercions from them too” rust#129392 - “Make deprecated_cfg_attr_crate_type_name a hard error” rust#129670
- “Stabilize expr_2021 fragment specifier in all editions” rust#129972
- “Check elaborated projections from dyn don’t mention unconstrained late bound lifetimes” rust#130367
- “Finish stabilization of
result_ffi_guarantees” rust#130628 - “Stabilize const
ptr::write*andmem::replace” rust#130954 - “Stabilize s390x inline assembly” rust#131258
- “Stabilize Arm64EC inline assembly” rust#131781
- “Always display first line of impl blocks even when collapsed” rust#132155
- “rework winnowing to sensibly handle global where-bounds” rust#132325
- “mark is_val_statically_known intrinsic as stably const-callable” rust#132449
- “Fix ICE when multiple supertrait substitutions need assoc but only one is provided” rust#133392
- “[rustdoc] Add sans-serif font setting” rust#133636
- “disallow
repr()on invalid items” rust#133925 - “Make the wasm_c_abi future compat warning a hard error” rust#133951
- “fully de-stabilize all custom inner attributes” rust#134276
- “remove long-deprecated no-op attributes no_start and crate_id” rust#134300
- “Stabilize
feature(trait_upcasting)” rust#134367 - “Fix parsing of ranges after unary operators” rust#134900
- “Future incompatibility warning
unsupported_fn_ptr_calling_conventions: Also warn in dependencies” rust#135767 - “Reject
?Traitbounds in various places where we unconditionally warned since 1.0” rust#135841 - “Make cenum_impl_drop_cast a hard error” rust#135964
- “Allow
*const W<dyn A> -> *const dyn Aptr cast” rust#136127 - “Do not deduplicate list of associated types provided by dyn principal” rust#136458
- “Do not allow attributes on struct field rest patterns” rust#136490
- “Make
ptr_cast_add_auto_to_objectlint into hard error” rust#136764
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Check signature WF when lowering MIR body” rust#137298
- Authored by compiler-errors, nominated by @_apiraino as a potential “nice to have” but doesn’t seem urgent
- Fixes #137186, a P-medium ICE
- :beta: “rustdoc: when merging target features, keep the highest stability” rust#137632
- Authored by RalfJung
- Fixes #137366 (possibly p-high), where rust docs generation failed on some ARM32 targets
- :beta: “Don’t infer attributes of virtual calls based on the function body” rust#137669
- Authored by DianQK
- Fixes #137646, p-critical miscompile, turns out was on stable after all
- :beta: Revert “store ScalarPair via memset when one side is undef and the other side can be memset” rust#137894
- Authored by @Michael Goulet (compiler-errors)
- Fixes #137892, reverts the patch that regressed (#135335)
- 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
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 59 T-compiler P-high issues
- 0 P-critical, 2 P-high, 1 P-medium, 1 P-low regression-from-stable-to-beta
- 1 P-critical, 1 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 1 P-critical, 33 P-high, 100 P-medium, 20 P-low regression-from-stable-to-stable
P-critical
- “Miscompilation caused by incorrectly-deduced readonly on virtual call” rust#137646
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “regression: ICE in rustc_codegen_ssa/src/mir/rvalue.rs:104:55:” rust#137892
- Taken care by @oli in #137894 beta-nominated (reverted #135335 that caused the regression)
- “regression: literal out of range” rust#137893
- It’s on the radar (I think @oli and/or @_Michael Goulet (compiler-errors) )
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
A pretty quiet week, with minimal changes in performance (positive or negative).
Triage done by @simulacrum. Revision range: f5729cfe..daf59857
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.2%, 0.6%] | 16 |
| Regressions (secondary) | 0.3% | [0.1%, 0.6%] | 27 |
| Improvements (primary) | -0.4% | [-1.1%, -0.2%] | 27 |
| Improvements (secondary) | -1.0% | [-4.1%, -0.1%] | 63 |
| All (primary) | -0.1% | [-1.1%, 0.6%] | 43 |
1 Regressions, 4 Improvements, 1 Mixed; 2 of them in rollups 29 artifact comparisons made in total
Regressions
Remove NtPat, NtMeta, and NtPath #137517 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 16 |
| Regressions (secondary) | 0.4% | [0.3%, 0.6%] | 9 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 16 |
The perf regressions are expected and unavoidable, alas.
https://github.com/rust-lang/rust/pull/137517#issuecomment-2692915586
Improvements
Change interners to start preallocated with an increased capacity #137354 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.3%, 0.4%] | 2 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 2 |
| Improvements (primary) | -0.3% | [-0.6%, -0.2%] | 39 |
| Improvements (secondary) | -0.4% | [-1.1%, -0.1%] | 63 |
| All (primary) | -0.3% | [-0.6%, 0.4%] | 41 |
Rollup of 8 pull requests #137710 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -2.0% | [-2.8%, -1.3%] | 9 |
| All (primary) | - | - | 0 |
librustdoc: return impl fmt::Display in more places instead of writing to strings #137425 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.6% | [-1.2%, -0.2%] | 4 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.6% | [-1.2%, -0.2%] | 4 |
Optimize empty provenance range checks. #137704 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 3 |
| Improvements (secondary) | -1.9% | [-3.4%, -0.2%] | 13 |
| All (primary) | -0.3% | [-0.3%, -0.3%] | 3 |
Mixed
Rollup of 10 pull requests #137796 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.1%, 0.4%] | 9 |
| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 8 |
| Improvements (primary) | -0.6% | [-0.9%, -0.2%] | 2 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.1% | [-0.9%, 0.4%] | 11 |
Hoping for recovery in subsequent PRs (see comment: https://github.com/rust-lang/rust/pull/137796#issuecomment-2693307115).
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Do not eagerly reject inference vars when trying to resolve method calls.” rust#126316
- cc @lcnr
- “Share the naked asm impl between cg_ssa and cg_clif” rust#134232
- cc @Esteban Küber
- “Show pending obligations as unsatisfied constraints in
report_similar_impl_candidates” rust#134348 (last review activity: 2 months ago)- cc @Michael Goulet (compiler-errors) or @Wesley Wiser can you have a second look if the minimization here is now adequate?
- “Make
Defaultconst and add someconst Defaultimpls” rust#134628 (last review activity: 2 months ago)- cc @oli
- “Invalidate all dereferences when encountering non-local assignments” rust#132527 (last review activity: 2 months ago)
- cc @cjgillot
Next meetings’ agenda draft: hackmd link