T-compiler Meeting Agenda 2024-11-07
Announcements
- Steering meeting: planning tomorrow at time:2024-11-08T09:00:00-06:00
- 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-11-07T22:00:00+01: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 49 days ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: about 27 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 14 days ago)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: about 20 days ago)
- “Normalize FileCheck directives” compiler-team#789 (Zulip) (last review activity: about 20 days ago)
- “Relink, don’t rebuild” compiler-team#790 (Zulip) (last review activity: about 20 days ago)
- “Support for a new
wasm32-linux-musl
Tier-3 target” compiler-team#797 (Zulip) (last review activity: about 20 days ago) - “Create an avr-unknown-unknown target” compiler-team#800 (Zulip) (last review activity: about 6 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)
- “Fix ICE when passing DefId-creating args to legacy_const_generics.” rust#130443
- “Stabilize WebAssembly
multivalue
,reference-types
, andtail-call
target features” rust#131080 - “Reject raw lifetime followed by
'
, like regular lifetimes do” rust#132341
- 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
- “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 - “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 - “Decide whether blocks inside
asm
goto should default to safe” rust#132078
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Also treat
impl
definition parent as transparent regarding modules” rust#132453- Authored by Urgau
- Fixes P-low #132427, when a
const
was generated in a proc-macro
- :beta: “Revert “Avoid nested replacement ranges” from #129346.” rust#132587
- Authored by nnethercote
- Complements #129346 (which fixes some regressions found in a crater run for 1.83, see 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
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 70 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
- 1 P-critical, 38 P-high, 100 P-medium, 17 P-low regression-from-stable-to-stable
P-critical
- “[Regression] LLVM asserts “conflicting locations for variable” since 1.82” rust#131944
- Fedora Core 39 CI does not build anymore (uses LLVM 17)
- Will be fixed by #132613, still in draft (unsure why)
- No
P-critical
issues forT-types
this time.
P-high regressions
- “Hang after encountering overflow errors for huge types” rust#132673
- Traits rework in #119989 seems to cause an infinite recursion in some cases (see comment)
- On stable since 1.78. Though the repro is quite simple, seems was not yet reported
- Is this a P-high or can be downgraded?
- No
P-high
beta regressions this time.
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
A week dominated by one large improvement and one large regression where luckily the improvement had a larger impact. The regression seems to have been caused by a newly introduced lint that might have performance issues. The improvement was in building rustc with protected visibility which reduces the number of dynamic relocations needed leading to some nice performance gains. Across a large swath of the perf suite, the compiler is on average 1% faster after this week compared to last week.
Triage done by @rylev. Revision range: c8a8c820..27e38f8f
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.8% | [0.1%, 2.0%] | 80 |
Regressions (secondary) | 1.9% | [0.2%, 3.4%] | 45 |
Improvements (primary) | -1.9% | [-31.6%, -0.1%] | 148 |
Improvements (secondary) | -5.1% | [-27.8%, -0.1%] | 180 |
All (primary) | -1.0% | [-31.6%, 2.0%] | 228 |
1 Regression, 1 Improvement, 5 Mixed; 3 of them in rollups 46 artifact comparisons made in total
Regressions
Rollup of 6 pull requests #132326 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.2%, 1.9%] | 104 |
Regressions (secondary) | 1.5% | [0.1%, 4.4%] | 68 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.7% | [0.2%, 1.9%] | 104 |
- Fairly large regression caused by https://github.com/rust-lang/rust/pull/131984.
- Most likely due to a non-performant lint being run that wasn’t previously.
- Checked with the author and reviewer.
Improvements
Use protected visibility when building rustc with LLD #131634 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.8% | [-31.3%, -0.1%] | 174 |
Improvements (secondary) | -4.2% | [-27.5%, -0.2%] | 224 |
All (primary) | -1.8% | [-31.3%, -0.1%] | 174 |
Mixed
Rollup of 12 pull requests #132317 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.2%, 0.4%] | 4 |
Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
Improvements (primary) | -0.2% | [-0.4%, -0.1%] | 6 |
Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
All (primary) | -0.0% | [-0.4%, 0.4%] | 10 |
- Looks like a bit more time spent in LLVM? Might have been caused by a few PRs in this rollup, but the total result is a wash, so I don’t think it’s needed to dig deeper into this.
Rc/Arc: don’t leak the allocation if drop panics #132231 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.6% | [0.6%, 0.6%] | 1 |
Regressions (secondary) | 2.3% | [1.1%, 3.5%] | 6 |
Improvements (primary) | -0.9% | [-1.4%, -0.3%] | 3 |
Improvements (secondary) | -0.4% | [-0.6%, -0.2%] | 5 |
All (primary) | -0.5% | [-1.4%, 0.6%] | 4 |
- There probably isn’t too much to be done regarding perf, all of the major regressions come from one small stress test crate.
Mark simplify_aggregate_to_copy
mir-opt as unsound #132356 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.3%, 1.9%] | 14 |
Regressions (secondary) | 0.7% | [0.2%, 2.3%] | 16 |
Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
Improvements (secondary) | -0.3% | [-0.4%, -0.3%] | 5 |
All (primary) | 0.7% | [-0.3%, 1.9%] | 15 |
- This deactivated an unsound MIR optimization until it is fixed.
add const_panic macro to make it easier to fall back to non-formatting panic in const #132542 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.8% | [0.2%, 1.8%] | 6 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.5% | [-0.9%, -0.1%] | 5 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.2% | [-0.9%, 1.8%] | 11 |
- Looks like most of the regressions are taking longer in LLVM related queries (e.g., LLVM_module_codegen_emit_obj) which doesn’t make a ton of sense to me.
Rollup of 11 pull requests #132626 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.6% | [0.5%, 0.9%] | 7 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 2 |
All (primary) | - | - | 0 |
- It’s not obvious to me which PR might be the culprit here and the regression is small and contained enough that I don’t think it’s worth investigating.
Nominated Issues
- GSoC blog post PR needs an r+ from a team lead: https://github.com/rust-lang/blog.rust-lang.org/pull/1419
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “sess: stabilize
-C stack-protector=all
” rust#121742- Unsure about current status? cc @Wesley Wiser do you have some context here?
- “Do not eagerly reject inference vars when trying to resolve method calls.” rust#126316
- Any news cc @lcnr (re: talk with @_oli, see comment)
- “Initial support for auto traits with default bounds” rust#120706 (last review activity: 3 months ago)
- perhaps cc @Michael Goulet (compiler-errors) @Vadim Petrochenkov since commented (modulo a rebase)
- “Fix crate name validation” rust#127581 (last review activity: 3 months ago)
- cc @Wesley Wiser
- “Remove -Zfuel.” rust#115293
- cc @Wesley Wiser another one for you
Next meetings' agenda draft: hackmd link