T-compiler Meeting Agenda 2023-09-28
Announcements
- :loudspeaker: Next week Oct, 5th release of Rust stable 1.73
- :loudspeaker: Rust survey 2023 works are starting again: the questionnaire is open to feedback from
T-*
! (Zulip thread) - AFIT/RPITIT Impl Triage at time:2023-09-28T16:00:00-04:00
- Compiler Team Steering Meeting - RFC Review at time:2023-09-29T10: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 open discussion at time:2023-09-28T12:00:00-04:00
- Types team meeting: agenda for meetup at time:2023-10-02T10:00:00-04:00
- Types Rotating new solver / formality / polonius deep dive at time:2023-10-02T11:00:00-04:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Have
rustc
produce a local log of execution metrics” compiler-team#679
- “Have
- 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: 4 months ago)
- “Add a new
--build-id
flag to rustc” compiler-team#635(last review activity: 4 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 26 days ago)
- “Match the behavior of
strip
andsplit-debuginfo
across platforms” compiler-team#669(last review activity: about 23 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
- “Add infrastructure to “compute the ABI of a Rust type, described as a C type”” compiler-team#672
- “Stabilize
--json=unused-externs(-silent)
” compiler-team#674 - “Offload dep graph encoding to a thread” compiler-team#677
- “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
- Accepted MCPs
- “Change how closure and generator types are printed to avoid clash with slice types” compiler-team#675
- Finalized FCPs (disposition merge)
- “Add allow-by-default lint for unit bindings” rust#112380
- “Amend style guide section for formatting where clauses in type aliases” rust#114901
WG checkins
-
@_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin):
Checkin text
-
@_WG-diagnostics by @Esteban Küber and @oli (previous checkin):
Checkin text
Backport nominations
T-compiler stable / T-compiler beta
- :beta: [1.73] “Add a way to decouple the implementation and the declaration of a TyCtxt method.” rust#116052
- patch authored by @**oli
- addresses #115819, which is meant to fix #83085
- Note: either beta backport this or patch #115819 into beta branch (beta backport approved last week)
- T-rustdoc is tagged but there seems to be little under
./src/librustdoc
. Under./tools/miri
there’s more: Should also some other team check this?
- :beta: [1.73] “Only prevent field projections into opaque types, not types containing opaque types” rust#116156
- patch authored by @oli
- fixes #115778, P-high
- perf. bench result seems neutral (slight improvement on secondary bench)
- :beta: [1.73] “Update LLVM submodule” rust#116227
- Just opened, needs review
- Fixes a few miscompilation regressions
- No stable nominations for
T-compiler
this time.
PRs S-waiting-on-team
- 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, 0 P-high, 1 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
- 1 P-critical, 40 P-high, 100 P-medium, 18 P-low regression-from-stable-to-stable
P-critical
- “ICE: unexpected initial operand type.” rust#114858
- Discussed last week (meeting notes)
- Agreed to leave it P-critical until today to measure impact after merging of #115215 (happened 2w ago). If no more people pile on this issue, evaluate a P-high downgrade
- No
P-critical
issues forT-types
this time.
- 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 very quiet week with the only large change in performance being improvements brought on by @saethlin’s work on cleaning up the FileEncoder
used in various places like rustc_metadata
and rustc_serialize
.
Triage done by @rylev. Revision range: af78bae..27b4eb9
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.6% | [0.3%, 1.1%] | 15 |
Regressions (secondary) | 2.0% | [0.2%, 7.1%] | 32 |
Improvements (primary) | -0.7% | [-1.3%, -0.3%] | 70 |
Improvements (secondary) | -0.9% | [-3.5%, -0.2%] | 31 |
All (primary) | -0.4% | [-1.3%, 1.1%] | 85 |
2 Regressions, 3 Improvements, 4 Mixed; 0 of them in rollups 73 artifact comparisons made in total
Regressions
Fix ui-fulldeps --stage=1
with -Zignore-directory-in-diagnostics-source-blocks
#116009 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.4%, 0.5%] | 3 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.4% | [0.4%, 0.5%] | 3 |
- This only modified tests so this is noise
rustdoc: correctly render the return type of cross-crate async fns #116084 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.3%, 0.8%] | 9 |
Regressions (secondary) | 0.7% | [0.3%, 0.9%] | 17 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.4% | [0.3%, 0.8%] | 9 |
Improvements
Pretty-print argument-position impl trait to name it. #113955 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.7% | [-0.7%, -0.7%] | 2 |
Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 3 |
All (primary) | -0.7% | [-0.7%, -0.7%] | 2 |
compiletest: load supported sanitizers from target spec #115695 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
Improvements (secondary) | -0.6% | [-0.8%, -0.5%] | 6 |
All (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
Do not create a DerefLen place for Box<[T]>
. #115794 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.7% | [-0.7%, -0.6%] | 4 |
Improvements (secondary) | -0.5% | [-0.6%, -0.5%] | 3 |
All (primary) | -0.7% | [-0.7%, -0.6%] | 4 |
Mixed
Simplify/Optimize FileEncoder #115542 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.0% | [0.7%, 1.3%] | 2 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.6% | [-1.2%, -0.2%] | 95 |
Improvements (secondary) | -0.6% | [-1.2%, -0.3%] | 28 |
All (primary) | -0.6% | [-1.2%, 1.3%] | 97 |
- looks like a small regression snuck back in. The regressions seem real, but perhaps it’s not worth it given the much larger amount of improvements.
Enable effects for libcore #114776 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.3%, 0.4%] | 4 |
Regressions (secondary) | 0.6% | [0.3%, 0.8%] | 3 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 4 |
All (primary) | 0.3% | [0.3%, 0.4%] | 4 |
- Per Oli: The perf run shows a few extra executions of queries and metadata encoding, which seems unavoidable to me. We may get the perf back when ripping out the const checker’s logic that is only needed until we enable effects by default for doing const fn callability checks
Enable -Zdrop-tracking-mir by default #107421 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.4%, 0.5%] | 2 |
Regressions (secondary) | 4.5% | [0.3%, 6.5%] | 9 |
Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
Improvements (secondary) | -2.5% | [-3.3%, -1.9%] | 5 |
All (primary) | 0.2% | [-0.4%, 0.5%] | 3 |
- it seems the regressions to await-call-tree are real, but it’s unclear what the underlying cause is.
Add the cfg_match!
macro #115416 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.6% | [0.5%, 0.7%] | 4 |
Regressions (secondary) | 0.5% | [0.5%, 0.6%] | 2 |
Improvements (primary) | -1.3% | [-1.3%, -1.3%] | 1 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.2% | [-1.3%, 0.7%] | 5 |
- This is noise
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Fixes error count display is different when there’s only one error left” rust#114759 (last review activity: about 46 days ago)
- cc: @cjgillot (the diff is scary, maybe coordinate the effort on this one? See comment)
- “Also consider call and yield as MIR SSA.” rust#113915 (last review activity: about 46 days ago)
- cc: @Wesley Wiser (+ pending a perf run triage with negative numbers)
- “Show more information when multiple
impl
s apply” rust#114811(last review activity: about 44 days ago)- There’s a mention to @lcnr. Then rebase and review cc: @Wesley Wiser?
Next week’s WG checkins
- @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
- Impl Trait initiative by @oli
Next meetings' agenda draft: https://hackmd.io/CGSTpw4WRFec9SDNE58p-A