T-compiler Meeting Agenda 2024-10-17
Announcements
- Today, Rust 1.82 stable is out (blog post)
- 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: ITE (Impl Trait Everywhere) Triage time:2024-10-17T22:00:00+01:00
- wg-rust-analyzer steering meeting on Zulip (https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Steering.20meeting) time:2024-10-18T17:00:00+01:00
- wg-macros triage meeting Zulip (https://rust-lang.zulipchat.com/#narrow/stream/410876-wg-macros.2Ftriage) time:2024-10-18T18:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Make the test cfg a userspace check-cfg” compiler-team#785 (Zulip)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip)
- “Normalize FileCheck directives” compiler-team#789 (Zulip)
- “Relink, don’t rebuild” compiler-team#790 (Zulip)
- “Promote tier 3
arm64e-apple-ios
target to tier 2” compiler-team#793 (Zulip) - “Attribute handling reworks” compiler-team#796 (Zulip)
- “Support for a new
wasm32-linux-musl
Tier-3 target” compiler-team#797 (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 27 days ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: about 6 days ago)
- “Add
evex512
target feature for AVX10” compiler-team#778 (Zulip) (last review activity: about 41 days ago)
- Pending FCP requests (check your boxes!)
- “sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets” rust#123617
- “Add
--print host-triple
to print host target triple” rust#125579 - “Stabilize WebAssembly
multivalue
,reference-types
, andtail-call
target features” rust#131080 - “Lint on combining
#[no_mangle]
and#[export_name]
” rust#131558
- Things in FCP (make sure you’re good with it)
- “Wasm minimal features target” compiler-team#791 (Zulip)
- “make unsupported_calling_conventions a hard error” rust#129935
- Accepted MCPs
- “Add a new
--orchestrator-id
flag to rustc” compiler-team#635 (Zulip) - “Target families for executable format” compiler-team#716 (Zulip)
- “Don’t track
--emit=
options as part of crate SVH” compiler-team#769 (Zulip) - “
--hint-msrv=version
option so the compiler can take MSRV into account when linting” compiler-team#772 (Zulip) - “mark some target features as ‘forbidden’ so they cannot be (un)set with -Ctarget-feature” compiler-team#780 (Zulip)
- “-Z default-visibility option” compiler-team#782 (Zulip)
- “Test rule annotations” compiler-team#783 (Zulip)
- “New Tier-3 target for OpenHarmony on LoongArch64” compiler-team#784 (Zulip)
- “Support tests to use
minicore
std/core prelude stubs” compiler-team#786 (Zulip) - “Remove the
run-pass-valgrind
test suite” compiler-team#792 (Zulip) - “Create a notification group for WASM” compiler-team#794 (Zulip)
- “Add a new
- 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)
- None
- Other teams finalized FCPs
- “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
- “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
- “Stabilize const
ptr::write*
andmem::replace
” rust#130954 - “Proposal: stabilize
if_let_rescope
for Edition 2024” rust#131154
- “Fixup Windows verbatim paths when used with the
WG checkins
None
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Also use outermost const-anon for impl items in
non_local_defs
lint” rust#131660- Authored by Urgau
- Fixes #131643 (does not affect the upcoming stable 1.82, it’s a nightly regression, “promoted” to beta today)
- 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
- “Add x86 specific hotpatch flag to rustc” rust#124966
- This is waiting on MCP#745, in case anyone has time to look at that (Zulip discussionhttps://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Add.20Hotpatch.20flag.20compiler-team.23745)
- “Stabilize WebAssembly
multivalue
,reference-types
, andtail-call
target features” rust#131080- @_petrochenkov opened RFC to merge this (link)
- Issues in progress or waiting on other teams
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 69 T-compiler P-high issues
- 0 P-critical, 2 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 5 P-medium, 3 P-low regression-from-stable-to-nightly
- 0 P-critical, 36 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
- “non-pub function no longer compiled in debug profile, causing link errors on thumbv7em-none-eabihf with defmt” rust#131164
- Affects “just” a Tier 2 target but real-world impact seems to be serious (see comment)
- @_Quentin Dian (dianqk) fixed this in LLVM 19 (llvm-project#111478) and is backported to beta in #131448 (just in time for the stable release)
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
No major changes this week.
Triage done by @simulacrum. Revision range: e6c46db4..5ceb623a
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
Regressions (secondary) | 0.5% | [0.2%, 2.9%] | 16 |
Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 14 |
Improvements (secondary) | -0.6% | [-1.7%, -0.1%] | 32 |
All (primary) | -0.2% | [-0.4%, 0.2%] | 15 |
1 Regression, 1 Improvement, 2 Mixed; 2 of them in rollups 36 artifact comparisons made in total
Regressions
Introduce SolverRelating type relation to the new solver #131263 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
Regressions (secondary) | 0.5% | [0.2%, 2.7%] | 9 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.2% | [0.2%, 0.2%] | 1 |
Genuine, if small, regressions on a number of benchmarks. Likely required as part of the broader move to the new solver.
Improvements
Rollup of 8 pull requests #131628 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.5% | [0.3%, 0.6%] | 2 |
Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 8 |
Improvements (secondary) | -0.6% | [-1.8%, -0.1%] | 31 |
All (primary) | -0.3% | [-0.3%, -0.2%] | 8 |
Seems most likely to be due to “Shallowly match opaque key in storage #131599” but not confirming since this is an improvement.
Mixed
Rollup of 7 pull requests #131581 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.4% | [0.3%, 0.6%] | 6 |
Improvements (primary) | -0.3% | [-1.0%, -0.2%] | 7 |
Improvements (secondary) | -2.5% | [-2.5%, -2.5%] | 1 |
All (primary) | -0.3% | [-1.0%, -0.2%] | 7 |
Possibly spurious (and/or bi-modality) regression confined to tt-muncher (though across multiple scenarios). No need for further investigation, particular given a rollup.
Add #[track_caller]
to allocating methods of Vec
& VecDeque
#126557 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.0%, 0.5%] | 26 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.2% | [-0.2%, -0.1%] | 4 |
All (primary) | 0.3% | [0.0%, 0.5%] | 26 |
Seems to be accepted by T-libs (https://github.com/rust-lang/rust/pull/126557#issuecomment-2329482185). An expected regression pre-merge.
Nominated Issues
- “Add
minicore
test auxiliary and support//@ use-minicore
directive in ui/assembly/codegen tests” rust#130693- @RalfJ nominated to evaluate the best directive syntax to use, see comment (and following)
- More context and candidates suggestions from @Jieyou Xu
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “add error message for c# style named arguments” rust#118733
- cc: @Esteban Küber
- “Silence errors in expressions caused by bare traits in paths in 2021 edition” rust#125784
- cc: @León Orell Liehr (fmease) but also author cc @Esteban Küber
- A pretty big diff, needs a rebase. Unsure about the best way to proceed.
- “Improve parse item fallback” rust#125388 (last review activity: 4 months ago)
- cc: @Wesley Wiser
- “Do not eagerly reject inference vars when trying to resolve method calls.” rust#126316 (last review activity: about 53 days ago)
- cc @lcnr still interested in revieweing this?
- Since @_mw recently left the project (💔), there are still a few pull requests assigned to him. Maybe find another assignee? Any taker? 🙏
Next week’s WG checkins
- None
Next meetings' agenda draft: hackmd link