T-compiler Meeting Agenda 2025-01-30
Announcements
- Today dot release 1.84.1 is out (blog post)
- Compiler Team Planning meeting at time:2025-01-31T16:00:00+01:00
- List of open meeting proposals
- If we could schedule this one compiler-team#813 would unblock work by @jdonszelmann and @Celina Val
- Work is happening at rust#128045 (originally started by Felix) which is T-lang nominated but this comment from @oli indicates that … it’s not blocked on T-lang?
- 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-01-30T19:00:00+01:00
- Stable MIR Weekly Meeting time:2025-01-31T17:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Add
target_abi = "[ilp]{2,3}[3264]{2}[fdq]?"
to all RV[3264]{2}I targets” compiler-team#830 (Zulip) - “Do not ignore uninhabited types for function-call ABI purposes.” compiler-team#832 (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: 4 months ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: 3 months ago)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: 3 months ago)
- “Normalize FileCheck directives” compiler-team#789 (Zulip) (last review activity: 3 months ago)
- “Create an avr-unknown-none target” compiler-team#800 (Zulip) (last review activity: 2 months ago)
- “Demote
i686-pc-windows-gnu
” compiler-team#822 (Zulip) (last review activity: about 33 days 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 19 days 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
- Things in FCP (make sure you’re good with it)
- “Clean up operator representations” compiler-team#831 (Zulip)
- Accepted MCPs
- “Add amdgpu target” compiler-team#823 (Zulip)
- “Add new targets for Cygwin (and MSYS2)” compiler-team#826 (Zulip)
- “Changing
-O
toopt-level=3
” compiler-team#828 (Zulip)
- MCPs blocked on unresolved concerns
- “setup typos check in CI (for rust repo)” compiler-team#817 (Zulip)
- concern: contributor friction
- “Add
-C hint-mostly-unused
option” compiler-team#829 (Zulip) (last review activity: about 1 days ago) - “Add
evex512
target feature for AVX10” compiler-team#778 (Zulip) (last review activity: about 55 days ago)- concern: design-around-naming-scheme
- “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)
- Finalized FCPs (disposition merge)
- “Add
--print host-tuple
to 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-call
target 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_neg
lint asdouble_negations
” rust#126604 - “Allow dropping
dyn Trait
principal” 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
- “Stabilize
asm_goto
feature gate” rust#133870 - “Consider fields to be inhabited if they are unstable” rust#133889
- “disallow
repr()
on invalid items” rust#133925 - “Make the wasm_c_abi future compat warning a hard error” rust#133951
- “Stabilize target_feature_11” rust#134090
- “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
Backport nominations
T-compiler beta / T-compiler stable
- No beta nominations for
T-compiler
this time. - No stable nominations for
T-compiler
this time.
- No beta nominations for
T-types
this time. - No stable nominations for
T-types
this time.
PRs S-waiting-on-team
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 61 T-compiler P-high issues
- 1 P-critical, 0 P-high, 0 P-medium, 1 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, 36 P-high, 100 P-medium, 21 P-low regression-from-stable-to-stable
P-critical
- “regression: cannot borrow … as immutable because it is also borrowed as mutable” rust#135671
- this was fixed by #135709 but that patch regressed after merge. A new additional patch is being worked on (see comment)
- on the radar of @lqd and @Josh Stone (cuviper) (thanks!)
P-high regressions
- None
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
Relatively quiet week, with one large-ish regression that will be reverted. #132666 produced a nice perf. win, by skipping unnecessary work. This PR actually reversed a regression caused by a previous PR.
Triage done by @kobzol. Revision range: 9a1d156f..f7538506
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.2%, 2.2%] | 42 |
Regressions (secondary) | 2.1% | [0.1%, 11.6%] | 56 |
Improvements (primary) | -0.8% | [-4.2%, -0.1%] | 107 |
Improvements (secondary) | -1.2% | [-4.0%, -0.1%] | 77 |
All (primary) | -0.5% | [-4.2%, 2.2%] | 149 |
2 Regressions, 3 Improvements, 2 Mixed; 4 of them in rollups 45 artifact comparisons made in total
Regressions
Properly record metavar spans for other expansions other than TT #134478 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.1%, 0.4%] | 31 |
Regressions (secondary) | 1.0% | [0.1%, 3.0%] | 19 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
All (primary) | 0.2% | [0.1%, 0.4%] | 31 |
- This regression was deemed justified, it was caused by a bugfix.
- Marked as triaged.
Rollup of 7 pull requests #135947 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.1%, 2.2%] | 15 |
Regressions (secondary) | 1.4% | [0.1%, 2.2%] | 23 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.7% | [0.1%, 2.2%] | 15 |
- Small regression on doc builds.
- It’s unclear which PR caused the regression, as our automation for unrolling PRs has failed here for some reason.
- I don’t think that it’s worth it to manually post PR reverts and perf. test them for this kind of a doc regression.
Improvements
Refactor fmt::Display
impls in rustdoc #135494 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
Skip if-let-rescope
lint unless requested by migration #132666 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.8% | [-1.9%, -0.2%] | 100 |
Improvements (secondary) | -1.5% | [-4.2%, -0.1%] | 69 |
All (primary) | -0.8% | [-1.9%, -0.2%] | 100 |
- Fixes performance regression from previous PR.
Rollup of 7 pull requests #136070 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.2% | [-4.4%, -0.2%] | 28 |
Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 1 |
All (primary) | -1.2% | [-4.4%, -0.2%] | 28 |
Mixed
Rollup of 7 pull requests #135789 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 2 |
Improvements (primary) | -1.1% | [-1.1%, -1.1%] | 2 |
Improvements (secondary) | -0.5% | [-0.6%, -0.5%] | 2 |
All (primary) | -1.1% | [-1.1%, -1.1%] | 2 |
- This rollup was mostly performance neutral, the tiny regression on a single benchmark was noise.
- Marked as triaged.
Rollup of 8 pull requests #135978 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.2%, 1.1%] | 15 |
Regressions (secondary) | 6.2% | [0.8%, 11.5%] | 10 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.4% | [-0.7%, -0.2%] | 20 |
All (primary) | 0.4% | [0.2%, 1.1%] | 15 |
- The performance regression was caused by #135914, which will be reverted by #136011.
- Marked as triaged.
Nominated Issues
- “Improve documentation when adding a new target” rust#135992
- T-compiler was asked to review the wording, specifically the part about the new target needing to also be supported by
cc-rs
andlibc
support (which needs rustc support first, creating a cyclic dependency) - Discussed also on the Zulip thread
- T-compiler was asked to review the wording, specifically the part about the new target needing to also be supported by
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Improve dead code analysis for structs and traits defined locally” rust#128637
- cc: @cjgillot
- “Remove
Nonterminal
andTokenKind::Interpolated
” rust#124141 (last review activity: 4 months ago)- cc: @Vadim Petrochenkov
- “Implement struct_target_features.” rust#129881 (last review activity: 3 months ago)
- cc: @cjgillot (candidate for closing? there are some concerns about the design on Zulip)
- “Support multiple stability attributes on items” rust#131824 (last review activity: 3 months ago)
- cc: @Wesley Wiser wdyt? I see a comment from @Vadim Petrochenkov hinting (IIUC) that it’s not worth pursuing?
- “When encountering unexpected closure return type, point at return type/expression” rust#132156 (last review activity: 3 months ago)
- cc: @Nadrieril
Next meetings’ agenda draft: hackmd link