T-compiler Meeting Agenda 2024-11-14
Announcements
- Rustc Dev Guide reading club session, chapters 40 to 42 on time:2024-11-20T14:30:00-03:00. More information #t-compiler/wg-rustc-dev-guide>Rustc dev guide reading club.
- 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
- Types Team: Types Team High Bandwidth Discussions time:2024-11-18T16:00:00+01:00
- Compiler Team: P-high review time:2024-11-15T09:00:00-06:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Unstable flag to choose Emscripten unwinding abi” compiler-team#801 (Zulip)
- “Allow users to specify the TLS dialect (Traditional TLS vs. TLSDESC)” compiler-team#805 (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: about 55 days ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: about 33 days ago)
- “Add
evex512
target feature for AVX10” compiler-team#778 (Zulip) (last review activity: 2 months ago) - “Make the test cfg a userspace check-cfg” compiler-team#785 (Zulip) (last review activity: about 4 days ago)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: about 27 days ago)
- “Normalize FileCheck directives” compiler-team#789 (Zulip) (last review activity: about 27 days ago)
- “Relink, don’t rebuild” compiler-team#790 (Zulip) (last review activity: about 27 days ago)
- “Support for a new
wasm32-wali-linux-musl
Tier-3 target” compiler-team#797 (Zulip) (last review activity: about 0 days ago)- Note: this could probably be easily seconded, target name discussion already happened
- “Create an avr-unknown-none target” compiler-team#800 (Zulip) (last review activity: about 4 days ago)
- Pending FCP requests (check your boxes!)
- “sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets” rust#123617
- “Lint on combining
#[no_mangle]
and#[export_name]
” rust#131558
- Things in FCP (make sure you’re good with it)
- “Promote powerpc64le-unknown-linux-musl to tier 2” compiler-team#803 (Zulip)
- Accepted MCPs
- No new accepted proposals this time.
- MCPs blocked on unresolved concerns
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- concern: automatic-sync
- “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
- “Add
- Other teams finalized FCPs
- “Fixup Windows verbatim paths when used with the
include!
macro” rust#125205 - “Allow dropping
dyn Trait
principal” rust#126660 - “Lint against
&T
to&mut T
and&T
to&UnsafeCell<T>
transmutes” rust#128351 - “atomics: allow atomic and non-atomic reads to race” rust#128778
- “Lint against getting pointers from immediately dropped temporaries” rust#128985
- “#[inline(never)] does not work for async functions” rust#129347
- “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
- “Decide whether blocks inside
asm
goto should default to safe” rust#132078 - “Enforce that raw lifetimes must be valid raw identifiers” rust#132363
- “Fixup Windows verbatim paths when used with the
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Add discriminators to DILocations when multiple functions are inlined into a single point.” rust#132613
- Authored by khuey
- Fixes #131944, rated P-critical because it broke a Fedora CI
- Seems like nobody else reported it from happening, also see comment
- Note: #132900 (ICE without a repro) was opened 3 days ago, reporter suspects being caused by #132613. Codebase is private, we didn’t hear from them yet.
- :beta: “Only disable cache if predicate has opaques within it” rust#132625
- Authored by compiler-errors
- Improves a substancial compile time regression introduced in 1.82 (#132064)
- we’re not completely back at compile time before 1.82 (more specifically after #126024), see comment
- :stable: “Only disable cache if predicate has opaques within it” rust#132625
- see above
- 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
- 0 T-compiler P-critical issues
- 69 T-compiler P-high issues
- 0 P-critical, 0 P-high, 2 P-medium, 1 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly
- 0 P-critical, 38 P-high, 100 P-medium, 17 P-low regression-from-stable-to-stable
P-critical
- No
P-critical
issues forT-compiler
this time.
- No
P-critical
issues forT-types
this time.
P-high regressions
- No
P-high
beta regressions this time.
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
Regressions primarily in doc builds. No significant changes in cycle or max-rss counts.
Triage done by @simulacrum. Revision range: 27e38f8f..d4822c2d
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.2%, 1.0%] | 61 |
Regressions (secondary) | 0.9% | [0.2%, 1.5%] | 30 |
Improvements (primary) | -2.9% | [-5.0%, -0.6%] | 7 |
Improvements (secondary) | -1.5% | [-5.0%, -0.2%] | 28 |
All (primary) | 0.1% | [-5.0%, 1.0%] | 68 |
1 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups 47 artifact comparisons made in total
Regressions
Clean middle generics using paren sugar if trait has #[rustc_paren_sugar]
#132697 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.1%, 0.4%] | 8 |
Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 16 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.2% | [0.1%, 0.4%] | 8 |
Doc-only regressions, no fix directly planned (prioritizing code clarity), but inspired some unrelated cleanup in https://github.com/rust-lang/rust/pull/132886.
rustdoc-search: simplify rules for generics and type params #127589 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.1%, 0.5%] | 15 |
Regressions (secondary) | 0.4% | [0.1%, 0.5%] | 19 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -2.4% | [-2.4%, -2.4%] | 1 |
All (primary) | 0.2% | [0.1%, 0.5%] | 15 |
Doc-only regressions, likely genuine given the change.
Improvements
Only disable cache if predicate has opaques within it #132625 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -2.7% | [-5.0%, -0.2%] | 7 |
Improvements (secondary) | -3.0% | [-5.1%, -0.3%] | 10 |
All (primary) | -2.7% | [-5.0%, -0.2%] | 7 |
- Note from @_apiraino: #132625 recovered most of a substancial regression introduced in #126024
Mixed
Add new unstable feature const_eq_ignore_ascii_case
#131721 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.5% | [-0.7%, -0.1%] | 4 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.3% | [-0.7%, 0.2%] | 5 |
Probably mostly luck of some kind, change itself is library-only.
Emit warning when calling/declaring functions with unavailable vectors. #132173 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.2%, 1.0%] | 36 |
Regressions (secondary) | 0.6% | [0.2%, 0.9%] | 6 |
Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
All (primary) | 0.5% | [-0.4%, 1.0%] | 37 |
Regression, but a bunch of optimization work already went into it (see https://github.com/rust-lang/rust/pull/132173#issuecomment-2466642549).
Rollup of 6 pull requests #132831 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 1.4% | [1.3%, 1.5%] | 6 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.7% | [-1.4%, -0.2%] | 13 |
All (primary) | - | - | 0 |
Queued up one trial build. Likely a real regression, but not necessarily worth digging deeper given limited impact (few benchmarks).
Nominated Issues
- None
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Allow a MIR analysis to perform the state
join
directly” rust#114900- cc @cjgillot PR author added some more context. This work has been in progress since a bit. Can we get an update so that is clear what it needs to be done or - else - if we think this contribution is not needed (as hinted at this comment)? Thanks!
- Ref. also the Clippy patch: https://github.com/rust-lang/rust-clippy/pull/11364
- “Skip locking span interner for some syntax context checks” rust#128197 (last review activity: 3 months ago)
- cc: @davidtwco
- “Implement a lint for implicit autoref of raw pointer dereference - take 2” rust#123239 (last review activity: 3 months ago)
- cc: @lcnr did you have a chance to talk with @_oli (mentioned in comment)
- “When annotations needed, look at impls for more accurate suggestions " rust#128653 (last review activity: 2 months ago)
- cc: @Michael Goulet (compiler-errors) (afaics all your comments are addressed)
- “Improve dead code analysis for structs and traits defined locally” rust#128637 (last review activity: 2 months ago)
- cc: @cjgillot
Next meeting’s agenda draft: hackmd link