T-compiler Meeting Agenda 2024-11-28
Announcements
- Today, stable 1.83 is out! :tada:
- 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:2024-11-28T19:00:00+01:00
- Types Team: ITE (Impl Trait Everywhere) Triage time:2024-11-28T22:00:00+01:00
- @_davidtwco office hours time:2024-11-29T17:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Promote OpenHarmony targets to Tier 2 with Host Tools” compiler-team#811 (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: 2 months ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: about 48 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 8 days ago)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: about 41 days ago)
- “Normalize FileCheck directives” compiler-team#789 (Zulip) (last review activity: about 41 days ago)
- “Relink, don’t rebuild” compiler-team#790 (Zulip) (last review activity: about 41 days ago)
- “Create an avr-unknown-none target” compiler-team#800 (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
- Things in FCP (make sure you’re good with it)
- “Unstable flag to choose Emscripten unwinding abi” compiler-team#801 (Zulip)
- “Delete current polymorphization implementation” compiler-team#810 (Zulip)
- “Lint on combining
#[no_mangle]
and#[export_name]
” rust#131558
- Accepted MCPs
- “Support for a new
wasm32-wali-linux-musl
Tier-3 target” compiler-team#797 (Zulip) - “Promote powerpc64le-unknown-linux-musl to tier 2” compiler-team#803 (Zulip)
- “Allow users to specify the TLS dialect (Traditional TLS vs. TLSDESC)” compiler-team#805 (Zulip)
- “Ban field-projecting into
[rustc_layout_scalar_valid_range_*]
types” compiler-team#807 (Zulip) - “Forbid disabling SSE on x86 targets that have SSE in their “baseline”” compiler-team#808 (Zulip)
- “Support for a new
- MCPs blocked on unresolved concerns
- “New Tier-3 target proposal:
loongarch64-linux-android
” compiler-team#806 (Zulip)- concern: unsupported-architecture
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- concern: automatic-sync
- “New Tier-3 target proposal:
- 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 - “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
- “mark is_val_statically_known intrinsic as stably const-callable” rust#132449
- “Fixup Windows verbatim paths when used with the
Backport nominations
T-compiler beta / T-compiler stable
- :beta:"[AIX] Add option -X32_64 to the “strip” command" rust#133217
- Authored by xingxue-ibm
- Nominated by contributor mustartt
- This fixes a lot of test cases on AIX and allows the strip to function properly without OBJECT_MODE=64 (comment)
- :beta:“Use ReadCache for archive reading in bootstrap” rust#133462
- Authored and nominated by mustartt
- Fixes #133268, some AIX specific issues
- Speeds up the boostrap for 1.84 builds and fixes small build error (comment)
- 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 a tidy rule forbidding modules named
build
” rust#133404- FIY for T-compiler, discussion in progress on Zulip
- Issues in progress or waiting on other teams
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 59 T-compiler P-high issues
- 0 P-critical, 0 P-high, 1 P-medium, 0 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, 33 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
- None
Performance logs
This week saw more regressions than improvements, mostly due to three PRs that performed internal refactorings that are necessary for further development and modification of the compiler.
Triage done by @kobzol. Revision range: 7d40450b..7db7489f
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.6% | [0.1%, 3.6%] | 57 |
Regressions (secondary) | 0.6% | [0.0%, 2.7%] | 100 |
Improvements (primary) | -0.5% | [-1.5%, -0.2%] | 11 |
Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 7 |
All (primary) | 0.4% | [-1.5%, 3.6%] | 68 |
4 Regressions, 2 Improvements, 3 Mixed; 3 of them in rollups 40 artifact comparisons made in total
Regressions
Rollup of 8 pull requests #133219 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.2%, 1.1%] | 6 |
Regressions (secondary) | 0.5% | [0.3%, 1.2%] | 13 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.7% | [0.2%, 1.1%] | 6 |
- The regressions were on the helloworld benchmark and other tiny crates, and they were reverted in a follow-up merge commit.
- Marked as triaged.
continue ParamEnv
to TypingEnv
transition #133212 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.3%, 0.5%] | 5 |
Regressions (secondary) | 2.1% | [0.1%, 6.6%] | 12 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.4% | [0.3%, 0.5%] | 5 |
- Regressions caused by internal refactoring of the type system that is necessary for further improvements.
- Asked the PR author about the perf. effect of this PR and also of #133242 (mentioned below).
- Not marking as triaged.
Rollup of 5 pull requests #133280 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.2%, 0.4%] | 7 |
Regressions (secondary) | 2.0% | [2.0%, 2.0%] | 1 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.3% | [0.2%, 0.4%] | 7 |
- The secondary regression is noise.
- The primary regressions look to be genuine, but they are only on a single benchmark and they are very small, so I don’t think that further investigation is needed.
- Marked as triaged.
finish Reveal
removal #133242 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.2%, 3.6%] | 11 |
Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 24 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.7% | [0.2%, 3.6%] | 11 |
- Similar situation as in #133212.
- Not marking as triaged.
Improvements
Resolve tweaks #132761 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.3% | [-0.6%, -0.1%] | 68 |
Improvements (secondary) | -1.1% | [-1.1%, -1.1%] | 1 |
All (primary) | -0.3% | [-0.6%, -0.1%] | 68 |
Drop debug info instead of panicking if we exceed LLVM’s capability to represent it #133194 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.1% | [-1.1%, -1.1%] | 2 |
Improvements (secondary) | -0.4% | [-0.7%, -0.4%] | 8 |
All (primary) | -1.1% | [-1.1%, -1.1%] | 2 |
Mixed
Rollup of 5 pull requests #133234 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 2.2% | [0.2%, 5.5%] | 8 |
Regressions (secondary) | 0.8% | [0.8%, 0.8%] | 1 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -5.9% | [-5.9%, -5.9%] | 1 |
All (primary) | 2.2% | [0.2%, 5.5%] | 8 |
- The regression was caused by #132732.
- Asked the PR author if there is a way to reduce the compilation performance cost.
- Not marking as triaged.
Reduce false positives of tail-expr-drop-order from consumed values (attempt #2) #131326 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
Regressions (secondary) | 0.5% | [0.2%, 2.3%] | 15 |
Improvements (primary) | -0.7% | [-2.2%, -0.2%] | 19 |
Improvements (secondary) | -0.6% | [-1.0%, -0.3%] | 8 |
All (primary) | -0.7% | [-2.2%, 0.2%] | 20 |
- This was a win on primary benchmarks.
- Marked as triaged.
#124141 preliminaries #132629 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.1%, 0.3%] | 29 |
Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 16 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 5 |
All (primary) | 0.2% | [0.1%, 0.3%] | 29 |
- The regressions are caused by changes in the parser that are required for further cleanup and refactoring work.
- The regressions are genuine, but tiny. The author has deemed them to be unavoidable.
- Already marked as triaged by @nnethercote.
Nominated Issues
- “Lint on combining
#[no_mangle]
and#[export_name]
” rust#131558- Was nominated for a vibe check from T-compiler (link) but since then it made into final-comment-period so here we’re fine
- “Lock Major Change Proposal issue” triagebot#1858
- proposal by @Urgau, Zulip thread, authored the triagebot patch
- Automatically lock Major Change Proposal issues to comments
- Goal is to enforce discussions on Zulip
- Team members with write access (and bots) can still comment
Oldest PRs waiting for review
- “add error message for c# style named arguments” rust#118733 (last review activity: 11 months ago)
- cc: @Esteban Küber
- “link libunwind dynamically and allow controlling it via
crt-static
on gnullvm targets” rust#122003 (last review activity: 8 months ago)- cc: @Vadim Petrochenkov
- “Require
type_map::stub
callers to supply file information” rust#104342 (last review activity: 8 months ago)- cc @Sparrow Li
- “Silence errors in expressions caused by bare traits in paths in 2021 edition” rust#125784 (last review activity: 5 months ago)
- cc: @Esteban Küber for a rebase then cc: @_León Orell Liehr (fmease)
- “Support target-spec json file extension in various cases” rust#127389 (last review activity: 4 months ago)
- cc: @Wesley Wiser last time (comments) we mentioned to maybe open an MCP and run a vibe check
- do we perhaps want to ask the author to draft such a proposal?
Next meetings' agenda draft: hackmd link