T-compiler Meeting Agenda 2025-01-23
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
- @_davidtwco office hours time:2025-01-24T17:00:00+01:00
- WG-async design meeting time:2025-01-23T19:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Add
-C hint-mostly-unused
option” compiler-team#829 (Zulip)- Ongoing discussion, some things to be cleared up (see mominated issues)
- “Add
- 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 27 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 13 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)
- “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)
- Accepted MCPs
- “Relink, don’t rebuild” compiler-team#790 (Zulip)
- “Use debuginfo for short backtrace printing” compiler-team#818 (Zulip)
- “Policy: rustc can be run on case-insensitive filesystems but works in a case-sensitive way” compiler-team#819 (Zulip)
- “T-compiler Supplemental Tool Policy (Linker Scripts, etc.)” compiler-team#820 (Zulip)
- MCPs blocked on unresolved concerns
- “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) (last review activity: about 7 days ago)
- concern: contributor friction
- “Add
evex512
target feature for AVX10” compiler-team#778 (Zulip) (last review activity: about 49 days ago)- concern: design-around-naming-scheme
- Design meeting to discuss the naming scheme (compiler-team#827)
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (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 - “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
- “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
- “fully de-stabilize all custom inner attributes” rust#134276
- “Stabilize
feature(trait_upcasting)
” rust#134367
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Always force non-trimming of path in
unreachable_patterns
lint” rust#135310- Authored by estebank
- Fixes #135289, an ICE affecting diagnostics
- :beta: “add cache to
AmbiguityCausesVisitor
” rust#135618- Authored by lcnr
- Fixes #135457, substancial compile-time regression found in beta crater run
- :beta: “When LLVM’s location discriminator value limit is exceeded, emit locations with dummy spans instead of dropping them entirely” rust#135643
- Authored by khuey
- Fixes #135332, a P-high regression in a beta crater run
- Nominated from @Jieyou Xu for both beta+stable backport (comment)
- :beta: “Temporarily bring back
Rvalue::Len
” rust#135709- Authored by lqd
- Fixes a p-critical regression #135671
- has some perf losses but acceptable given what it fixes
- :beta: “Only assert the
Parser
size on specific arches” rust#135855- Authored and nominated for backport by cuviper
- Affects Fedora current beta on powerpc64le and s390x (comment)
- :stable: “add cache to
AmbiguityCausesVisitor
” rust#135618- Authored by lcnr
- (Also beta-backport nominated)
- :stable: “When LLVM’s location discriminator value limit is exceeded, emit locations with dummy spans instead of dropping them entirely” rust#135643
- Authored by khuey
- Nominated by @Jieyou Xu since in 1.84.0 we unconditionally verify twice the LLVM IR in the backend (this will changed in 1.85 with #133499)
- 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
- 62 T-compiler P-high issues
- 1 P-critical, 1 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
- None
- “regression: cannot borrow … as immutable because it is also borrowed as mutable” rust#135671
- Fixed by #135709 (beta-backport, thanks @lqd)
P-high regressions
- “regression: ICE:
trimmed_def_paths
called, diagnostics were expected but none were emitted” rust#135673- Fixed by #135310 (beta-backport, thanks @Michael Goulet (compiler-errors))
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
A very quiet week for performance, with small improvements essentially on all benchmarks.
Triage done by @simulacrum. Revision range: 1ab85fbd..9a1d156f
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.3%, 1.0%] | 3 |
Regressions (secondary) | 0.7% | [0.5%, 1.0%] | 4 |
Improvements (primary) | -0.4% | [-1.3%, -0.1%] | 155 |
Improvements (secondary) | -0.5% | [-1.8%, -0.1%] | 94 |
All (primary) | -0.4% | [-1.3%, 1.0%] | 158 |
0 Regression, 1 Improvement, 2 Mixed; 0 of them in rollups 40 artifact comparisons made in total
Regressions
No statistically significant regressions this cycle.
Improvements
Stable Hash: Ignore all HirIds that just identify the node itself #135329 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.4% | [-0.9%, -0.1%] | 169 |
Improvements (secondary) | -0.5% | [-1.3%, -0.1%] | 85 |
All (primary) | -0.4% | [-0.9%, -0.1%] | 169 |
Mixed
Less unsafe in dangling
/without_provenance
#135344 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.2% | [0.4%, 2.1%] | 2 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.5% | [-0.9%, -0.3%] | 3 |
Improvements (secondary) | -1.1% | [-1.6%, -0.6%] | 4 |
All (primary) | 0.2% | [-0.9%, 2.1%] | 5 |
Regressions look likely to be noise/modality in benchmarks, not genuine changes caused by this work. See also some analysis on the PR.
Temporarily bring back Rvalue::Len
#135709 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 |
Regressions (secondary) | 0.4% | [0.2%, 0.5%] | 6 |
Improvements (primary) | -0.7% | [-1.3%, -0.4%] | 3 |
Improvements (secondary) | -0.9% | [-1.7%, -0.2%] | 2 |
All (primary) | -0.4% | [-1.3%, 0.3%] | 4 |
Fixing P-critical regression, so easily justified.
Nominated Issues
- “Add
-C hint-mostly-unused
to tell rustc that most of a crate will go unused” rust#135656- Nominated by @Jubilee (comment), left some questions for T-compiler
- MCP#829, not yet seconded
- The proposal should substantially decrease compile times in some cases by hinting rustc when part of a crate is unused. Can regress in other cases (Zulip thread)
- Maybe a design meeting, inviting also people having more context? cc @lqd @Ben Kimock (Saethlin)
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Stop considering moved-out locals when computing auto traits for generators (rebased)” rust#128846 (last review activity: 5 months ago)
- cc @cjgillot
- “Add diagnostics to “while loop” and “for loop” that note that it is always determined that it might iterate zero times.” rust#126510 (last review activity: 4 months ago)
- cc @Esteban Küber
- “Async drop codegen” rust#123948 (last review activity: 3 months ago)
- What’s the current status of this one? cc @davidtwco @nikomatsakis
- “Handle
rustc_query_system
cases ofrustc::potential_query_instability
lint” rust#131200 (last review activity: 2 months ago)- cc @cjgillot
Next meetings’ agenda draft: hackmd link