T-compiler Meeting Agenda 2023-09-21
Announcements
- Compiler Team Planning meeting at time:2023-09-22T10:00:00-04:00
- Types team meeting: backlog bonanza at time:2023-09-25T10: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)
- wg-async reading club at time:2023-09-21T12:00:00-04:00
- AFIT/RPITIT Impl Triage at time:2023-09-21T16:00:00-04:00
- Stable MIR Weekly Meeting at time:2023-09-22T11:00:00-04:00
- wg-rls-2.0 weekly sync-up at time:2023-09-25T11:00:00-04:00
- Types Rotating new solver / formality / polonius deep dive at time:2023-09-25T11:00:00-04:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- No new proposals this time.
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 3 months ago)
- “Add a new
--build-id
flag to rustc” compiler-team#635 (last review activity: 3 months ago) - “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: 3 months ago)
- “Add support for visionOS targets” compiler-team#642 (last review activity: about 19 days ago)
- “Match the behavior of
strip
andsplit-debuginfo
across platforms” compiler-team#669 (last review activity: about 16 days ago) - “Add infrastructure to “compute the ABI of a Rust type, described as a C type”” compiler-team#672 (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
- " Add
type
field to distinguish json diagnostic outputs" compiler-team#673 - “Tracking issue for dyn upcasting coercion” rust#65991
- “Support overriding
warnings
level for a specific lint via command line” rust#113307
- Things in FCP (make sure you’re good with it)
- “Add a blanket flag to enable/disable codegen UB checks” compiler-team#625
- “Add support for Zephyr OS” compiler-team#629
- “Report all lints, even if other errors already occurred.” compiler-team#633
- “Add illumos Tier3 targets” compiler-team#644
- “Add option to pass environment variables” compiler-team#653
- “Add tidy rule against
issue-[0-9]+.rs
tests” compiler-team#658 - “Condemn
asmjs-unknown-emscripten
to push a boulder up a hill for eternity” compiler-team#668 - “Allow overriding default codegen backend on a per-target basis” compiler-team#670
- “Stabilize
--json=unused-externs(-silent)
” compiler-team#674 - “Change how closure and generator types are printed to avoid clash with slice types” compiler-team#675
- “Offload dep graph encoding to a thread” compiler-team#677
- “Add allow-by-default lint for unit bindings” rust#112380
- “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
- Accepted MCPs
- “Promote loongarch64-unknown-none* to Tier 2” compiler-team#664
- “Make unknown/renamed/removed lints passed via command line respect lint levels” compiler-team#667
- “Create a binary-size working group” compiler-team#671
- Finalized FCPs (disposition merge)
- “Enable -Zdrop-tracking-mir by default” rust#107421
- “Accept additional user-defined syntax classes in fenced code blocks” rust#110800
- “rustdoc-search: add support for type parameters” rust#112725
- “rustdoc: show inner enum and struct in type definition for concrete type” rust#114855
- “Don’t resolve generic impls that may be shadowed by dyn built-in impls” rust#114941
- “closure field capturing: don’t depend on alignment of packed fields” rust#115315
WG checkins
-
@_WG-mir-opt by @oli (previous checkin):
Checkin text
-
@_T-rust-analyzer by @Lukas Wirth (previous checkin):
One small thing, unfortunately the rustc_abi crate got broken for us in https://github.com/rust-lang/rust/pull/107163 (as in we can’t upgrade to newer versions) and we noticed that too late so the change can’t be rolled back too easily anymore :sweat_smile: So we’ll have to think about how to prevent that from happening again, https://github.com/rust-lang/rust-analyzer/issues/15569
Backport nominations
T-compiler stable / T-compiler beta
- :beta: [1.73.0-beta.6] “Don’t modify libstd to dump rustc ICEs” rust#115627
- fixes regression #115610 about an increased binary size
- Also T-libs camp (they approved the backport on Zulip)
- :beta: [1.73.0-beta.6] “Expose try_destructure_mir_constant_for_diagnostics directly to clippy” rust#115819
- commented briefly last week, left some comments
- :beta: [1.73.0-beta.6] “Paper over an accidental regression” rust#115844
- merged last week, fixes rust#115781 a p-medium regression found in a beta crater run
- :beta: [1.73.0-beta.6] “Update to LLVM 17.0.0” rust#115959
- fixes a p-critical miscompile (#115681)
- :beta: [1.73.0-beta.6] “Update LLVM submodule to 17.0.0-rc4” rust#115581
- fixes #115385 a p-critical unsoundness MIRI issue (comment)
- goes hand in hand with the LLVM 17.0.0 upgrade (#115959)
- No stable nominations for
T-compiler
this time.
PRs S-waiting-on-team
- “More distinctive pretty-printing of function item types” rust#99927
- @Frank Steffahn (PR author) left some comments, seemingly addressed to T-compiler? Not too sure about the current status
- Other issues in progress or waiting on other teams
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 61 T-compiler P-high issues
- 0 P-critical, 1 P-high, 2 P-medium, 1 P-low regression-from-stable-to-beta
- 0 P-critical, 1 P-high, 2 P-medium, 2 P-low regression-from-stable-to-nightly
- 2 P-critical, 39 P-high, 100 P-medium, 18 P-low regression-from-stable-to-stable
P-critical
- “ICE: unexpected initial operand type.” rust#114858
- “RPIT hidden types can be ill-formed” rust#114728
- Should be fixed by @aliemjay in rust#115008
- Downgrade to P-high? Filed in August, regressed in 1.61, likely not a release blocker at this point
- No
P-critical
issues forT-rustdoc
this time.
P-high regressions
- “regression: as_place unwrap None” rust#115778
- found during the latest beta crater run
- bisected to commit 34ccd04
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
A pretty quiet week, with relatively few statistically significant changes, though some good improvements to a number of benchmarks, particularly in cycle counts rather than instructions.
Triage done by @simulacrum. Revision range: 7e0261e7ea2085bdc0bc3d0fd6776bf343473858..af78bae565e85b9c5698ee909af0652674eca6d4
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.3%, 0.8%] | 14 |
Regressions (secondary) | 0.5% | [0.2%, 0.8%] | 5 |
Improvements (primary) | -1.2% | [-6.4%, -0.3%] | 22 |
Improvements (secondary) | -2.1% | [-8.1%, -0.2%] | 37 |
All (primary) | -0.5% | [-6.4%, 0.8%] | 36 |
3 Regressions, 3 Improvements, 2 Mixed; 2 of them in rollups 56 artifact comparisons made in total
Regressions
Accept additional user-defined syntax classes in fenced code blocks #110800 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.5%, 0.9%] | 3 |
Regressions (secondary) | 0.9% | [0.5%, 1.4%] | 3 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.7% | [0.5%, 0.9%] | 3 |
Some slight regressions, limited to doc benchmarks, for a new feature in rustdoc.
Store a index per dep node kind #115733 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.2%, 0.5%] | 9 |
Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 6 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.4% | [0.2%, 0.5%] | 9 |
Slight instruction regressions but overall an improvement – max-rss and cycle counts are both down in aggregate.
Improvements
Rollup of 6 pull requests #115909 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.6% | [-1.0%, -0.5%] | 6 |
Improvements (secondary) | -1.1% | [-1.5%, -0.4%] | 19 |
All (primary) | -0.6% | [-1.0%, -0.5%] | 6 |
Rollup of 8 pull requests #115929 (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.2%] | 19 |
Improvements (secondary) | -0.5% | [-0.6%, -0.2%] | 12 |
All (primary) | -0.4% | [-0.7%, 0.2%] | 20 |
move required_consts check to general post-mono-check function #115748 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.5% | [0.5%, 0.5%] | 1 |
Improvements (primary) | -5.0% | [-6.3%, -3.6%] | 2 |
Improvements (secondary) | -6.1% | [-6.6%, -5.7%] | 6 |
All (primary) | -5.0% | [-6.3%, -3.6%] | 2 |
Cache reachable_set on disk #115740 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.4%, 0.4%] | 1 |
Regressions (secondary) | 0.4% | [0.4%, 0.6%] | 4 |
Improvements (primary) | -1.0% | [-2.4%, -0.3%] | 8 |
Improvements (secondary) | -2.6% | [-8.2%, -0.8%] | 4 |
All (primary) | -0.9% | [-2.4%, 0.4%] | 9 |
Regressions are actually just noise, so moved this to improvements.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Implement a global value numbering MIR optimization” rust#109597 (last review activity: 4 months ago)
- cc: @Jack Huey
- “Require
type_map::stub
callers to supply file information” rust#104342 (last review activity: 3 months ago)- cc @Wesley Wiser
- “Fix ICE when trying to convert
ConstKind::Error
to usize” rust#113712 (last review activity: about 32 days ago)- cc: @uwu (reassign?)
- “Suggest
pin!()
instead ofPin::new()
when appropriate” rust#114654 (last review activity: about 40 days ago)- cc @davidtwco
Next week’s WG checkins
- @_WG-async-foundations by @nikomatsakis and @tmandry
- @_WG-diagnostics by @Esteban Küber and @oli
Next meetings' agenda draft: hackmd link