T-compiler Meeting Agenda 2023-08-17
Announcements
- One week to the 1.72 stable release
- wg-async deep dive: IntoFuture autoderef + #42940 at time:2023-08-17T12:00:00-04:00
- AFIT/RPITIT Impl Triage at time:2023-08-17T16:00:00-04: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 (calendar link)
- Types team meeting at time:2023-08-21T10:00:00-04:00
- wg-debugging triage meeting at time:2023-08-21T10:00:00-04:00
- wg-rls-2.0 weekly sync-up at time:2023-08-21T11:00:00-04:00
- [Types] Rotating new solver / formality / polonius deep dive at time:2023-08-21T11:00:00-04:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Allow anonymous constants to be folded across crates (weak linkage + COMDAT)” compiler_team#662 (Zulip)
- “Promote loongarch64-unknown-none* to Tier 2” compiler_team#664 (Zulip)
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “Cell Broadband Engine SPU support” compiler-team#614 (Zulip) (last review activity: 4 months ago)
- “Add support for Zephyr OS” compiler-team#629 (Zulip) (last review activity: about 56 days ago)
- “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (Zulip) (last review activity: 2 months ago)
- “Add a new
--build-id
flag to rustc” compiler-team#635(last review activity: 2 months ago) - “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (Zulip) (last review activity: 2 months ago)
- “Add support for visionOS targets” compiler-team#642 (Zulip) (last review activity: about 48 days ago)
- “Add illumos Tier3 targets” compiler-team#644 (Zulip) (last review activity: about 23 days ago)
- “Migrate away from u32 as an offset/length type” compiler-team#647 (Zulip) (last review activity: about 41 days ago)
- “Add
builtin:$path
option to the-L
flag” compiler-team#659 - “Addbuiltin:$path
option to the-L
flag” compiler_team#659 (Zulip) (last review activity: about 13 days ago)
- Pending FCP requests (check your boxes!)
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- “Tracking issue for dyn upcasting coercion” rust#65991
- “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
- Note: also
I-compiler-nominated
- Note: also
- “Support overriding
warnings
level for a specific lint via command line” rust#113307 - “Stabilize
PATH
option for--print KIND=PATH
” rust#114183
- Things in FCP (make sure you’re good with it)
- “Add a blanket flag to enable/disable codegen UB checks” compiler_team#625 (Zulip)
- “Report all lints, even if other errors already occurred.” compiler_team#633 (Zulip)
- “Add option to pass environment variables” compiler_team#653 (Zulip)
- “Add tidy rule against
issue-[0-9]+.rs
tests” compiler_team#658 (Zulip) - “Move a
wasm32-wasi-preview1-threads
target to tier 2” compiler_team#661 (Zulip)
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “Document soundness of Integer -> Pointer -> Integer conversions in
const
contexts.” rust#113510 - “Warn on inductive cycle in coherence leading to impls being considered not overlapping” rust#114023
- “Document soundness of Integer -> Pointer -> Integer conversions in
WG checkins
- @_WG-diagnostics by @Esteban Küber and @oli prev. checkin
Esteban reports: The diagnostics namespace is now on nightly. Not useful yet for anything, but that unblocks
on_type_error
andon_unimplemented
to be implemented for non rustc usecases
Backport nominations
T-compiler stable / T-compiler beta
- :beta: “Permit pre-evaluated constants in simd_shuffle” rust#113529
- Fixes #113500 and #114844 (and a few others), can’t compile crate
packed_simd_2-0
- Fixes #113500 and #114844 (and a few others), can’t compile crate
PRs S-waiting-on-team
- [draft] “Perform autoref/autoderef on
.await
” rust#111773- Scheduled for discussion today (comment)
- “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
- See
I-compiler-nominated
- See
- Other issues in progress or waiting on other teams
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 52 T-compiler P-high issues
- 0 P-critical, 1 P-high, 3 P-medium, 1 P-low regression-from-stable-to-beta
- 1 P-critical, 0 P-high, 3 P-medium, 2 P-low regression-from-stable-to-nightly
- 1 P-critical, 33 P-high, 100 P-medium, 18 P-low regression-from-stable-to-stable
P-critical
- “regex miscompiles with aggressive optimization flags” rust#114488
- discussed last week, @Wesley Wiser self-assigned
- “RPIT hidden types can be ill-formed” rust#114728
- No
P-critical
issues forT-rustdoc
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
A light week. Main thing to report is we got some improvements from telling LLVM
that the negation in <*const T>::sub
cannot overflow.
Triage done by @pnkfelix. Revision range: 443c3161..e8459109
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.7% | [-1.6%, -0.4%] | 11 |
Improvements (secondary) | -0.5% | [-1.6%, -0.3%] | 8 |
All (primary) | -0.7% | [-1.6%, -0.4%] | 11 |
0 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups 49 artifact comparisons made in total 30 Untriaged Pull Requests
Regressions
None
Improvements
Tell LLVM that the negation in <*const T>::sub
cannot overflow #114720 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 9 |
Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 4 |
All (primary) | -0.3% | [-0.3%, -0.2%] | 9 |
Mixed
Rollup of 7 pull requests #114604 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.4% | [0.4%, 2.0%] | 3 |
Regressions (secondary) | 1.2% | [1.1%, 1.3%] | 6 |
Improvements (primary) | -0.7% | [-0.9%, -0.4%] | 2 |
Improvements (secondary) | -1.0% | [-1.5%, -0.5%] | 2 |
All (primary) | 0.5% | [-0.9%, 2.0%] | 5 |
- already marked as triaged due to follow-up PR #114648
Only resolve target type in try_coerce
in new solver #114648 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.0% | [1.0%, 1.0%] | 1 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.7% | [-1.8%, -1.6%] | 2 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.8% | [-1.8%, 1.0%] | 3 |
- This was specifically added to undo regressions flagged in PR #114604
- it did indeed undo the big changes: e.g. cranelift-codegen-0.82.1 had regressed by {2%, 1.7%}, and this improved it back by {-1.84%, -1.59%}
- likewise cargo-0.60.0 had improved by -0.93%, and this regressed it back by 0.99%. (I.e. we returned to prior status quo.)
- some other effects were not addressed by this PR, but they are all minor.
- marking as triaged.
Only check outlives goals on impl compared to trait #109356 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 2 |
Improvements (primary) | -0.9% | [-1.6%, -0.6%] | 6 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.9% | [-1.6%, -0.6%] | 6 |
- regression is solely to the opt and debug profiles externs secondary benchmark, by a small amount.
- marked as triaged
Respect #[expect]
the same way #[allow]
is with the dead_code
lint #114710 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.3%, 0.7%] | 2 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.6% | [-0.8%, -0.5%] | 3 |
All (primary) | 0.5% | [0.3%, 0.7%] | 2 |
- seems like noise
- marked as triaged
Nominated Issues
- “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
- “Associated type constraints on super traits allowing for unsound transmutation to trait objects” rust#114389
- nominated by @apiraino (comment)
- discussed last week
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Preserve DebugInfo in DeadStoreElimination.” rust#106852 (last review activity: about 34 days ago)
- cc: @Jak{e,ob} Degen
- “Make SIGSEGV handler emit nicer backtraces” rust#113565 (last review activity: about 33 days ago)
- seems like this PR has been jumping assignment for a bit: any takers?
- “Fix ICE when trying to convert
ConstKind::Error
to usize” rust#113712(last review activity: about 32 days ago)- cc: @uwu
- “Replace the \01__gnu_mcount_nc to LLVM intrinsic for ARM” rust#113814(last review activity: about 30 days ago)
- needs an LLVM expert? (doesn’t seem urgent, tho)
Next week’s WG checkins
TBA
Next meetings' agenda draft: https://hackmd.io/EoH5hPsnTdaD1dcKEVbYug