T-compiler Meeting Agenda 2022-03-31
Announcements
- Tomorrow time:2022-04-01T12:00:00-04:00 (non-standard time) meeting robust incr-comp calendar link
- Tomorrow time:2022-04-01T09:00:00-04:00 Types Team: Planning/Deep-Dive meeting calendar link
- :loudspeaker: Next Thursday, April 7th, New Rust Release: 1.60 stable is out :loudspeaker: (blog post)
- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Add
yeet
experimentally” compiler-team#501
- “Add
- Old MCPs (not seconded, take a look)
- “Accept
pc
in place ofunknown
andunknown
in place ofpc
forx86_64
andi?86
targets” compiler-team#441 (last review activity: 9 months ago) - “Make
-Z binary-dep-depinfo
the default behavior” compiler-team#464 (last review activity: 6 months ago) - “Tier 3 target proposal: riscv64gc-linux-android (Android target for
riscv64gc
)” compiler-team#472 (last review activity: 3 months ago) - “
-Dwarnings
to cover all warnings” compiler-team#473 (last review activity: 3 months ago) - “Build-time execution sandboxing” compiler-team#475 (last review activity: 3 months ago)
- “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 2 months ago)
- “Removing codegen logic for
nvptx-nvidia-cuda
(32-bit target)” compiler-team#496 (last review activity: about 13 days ago)
- “Accept
- Pending FCP requests (check your boxes!)
- “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
- “Increase the minimum linux-gnu versions” rust#95026
- Things in FCP (make sure you’re good with it)
- “Promote
x86_64-unknown-none
to Tier 2” compiler-team#499 - “Add support for MIR opt unit tests via a new
-Z
flag” compiler-team#502
- “Promote
- Accepted MCPs
- “Implement
Clone
for generators” compiler-team#494
- “Implement
- Finalized FCPs (disposition merge)
- “Stabilize native library modifier syntax and the
whole-archive
modifier specifically” rust#93901 - “Lazy type-alias-impl-trait take two” rust#94081
- “Stabilize native library modifier syntax and the
WG checkins
- @_WG-traits (generic work of the WG) by @nikomatsakis and @Jack Huey (previous checkin):
Checkin text
- @_wg-incr-comp by @pnkfelix @Wesley Wiser (previous checkin):
Checkin text
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Fix ice when error reporting recursion errors” rust#94391
- No stable nominations for
T-compiler
this time.
T-rustdoc beta / T-rustdoc stable
- No backport nominations for
T-rustdoc
this time.
:back: / :shrug: / :hand:
PRs S-waiting-on-team
- No new PRs waiting on T-compiler
Oldest PRs waiting for review
- “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 5 months ago)
- cc: @pnkfelix
- “Specialize infinite-type “insert some indirection” suggestion for Option” rust#91416 (last review activity: about 41 days ago)
- cc: @Esteban Küber
- “[perf only] Test Rust with opaque pointers” rust#94214 (last review activity: about 35 days ago)
- cc: @eddyb
- “Remove all json handling from rustc_serialize” rust#85993 (last review activity: about 33 days ago)
- assigned to @Aaron Hill
- (a few comments also from various people)
- “Add
special_module_name
lint” rust#94467 (last review activity: about 29 days ago)- highfive bot assigned to @Matthew Jasper
- probably needs a reviewer
- “Create 2024 edition” rust#94461 (last review activity: about 29 days ago)
- @mw assigned to @pnkfelix :-)
- “create
-Z force-allocator-shim
codegen option” rust#94389 (last review activity: about 29 days ago)- @pnkfelix self-assigned to figure out to push #94389 or #86844 forward
- “Handle generic bounds in a uniform way in HIR” rust#93803 (last review activity: about 37 days ago)
- cc: @Esteban Küber
- “Also cache the stable hash of interned Predicates” rust#94487 (last review activity: about 29 days ago)
- @oli is it waiting for review? do you need a reviewer?
- @mw added self to cc (see comment)
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 59 T-compiler P-high issues
- 0 P-critical, 2 P-high, 1 P-medium, 2 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 1 P-critical, 38 P-high, 82 P-medium, 10 P-low regression-from-stable-to-stable
P-critical
- No new
P-critical
issues forT-compiler
this time.
- No
P-critical
issues forT-rustdoc
this time.
P-high regressions
- “No more auto-unrolling starting with LLVM 14” rust#94847
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
A mixed week: some minor regressions, but things overall improved for instruction counts.
Max RSS has gone up slightly over the past month, on the order of 0.5% regression according to benchmark summary. pnkfelix is following up on that with rustc-perf team on zulip
Triage done by @pnkfelix. Revision range: 3ea44938e21f0de8ae7d4f6399a8a30f97867c70..3e7514670db841a7f0d7656f3b13b1c8b2c11599
4 Regressions, 5 Improvements, 4 Mixed; 3 of them in rollups 30 Untriaged Pull Requests 63 comparisons made in total
Regressions
Rollup of 5 pull requests #95250
- Arithmetic mean of relevant regressions: 2.2%
- Largest regression in instruction counts: 11.1% on
full
builds ofcargo-0.60.0 doc
- Already triaged by oli-obk.
- it is solely in rustdoc, and oli-obk has a plan to address it in the long term.
Properly track ImplObligations
#91030
- Arithmetic mean of relevant regressions: 1.9%
- Largest regression in instruction counts: 3.8% on
full
builds ofprojection-caching check
- triaged; this was anticipated.
- The only primary regression was to diesel doc, and the regressions are justified by the improvement to the diagnostics.
Separate const prop lints from optimizations #94934
- Arithmetic mean of relevant regressions: 1.2%
- Largest regression in instruction counts: 2.1% on
incr-full
builds ofunicode_normalization opt
- Already triaged by oli-obk.
- In short: this was expected, becaused we are doing const-prop twice now.
- (The end-goal is stop optimizations from changing diagnostics. This PR is a step towards that goal.)
Rollup of 4 pull requests #95448
- Arithmetic mean of relevant regressions: 1.5%
- Largest regression in instruction counts: 2.5% on
incr-patched: io error 6144
builds ofissue-46449 debug
- triaged
- The only primary benchmark impacted by this was
unicode-normalization-0.1.19
, and that only saw a 0.50% regression on incr-patched: println and a 0.36% regression on full build. We can ignore that. - The only secondary benchmark impacted was issue-46449, which is trying to catch regression of quadratic blowup, not minor regressions.
Improvements
- Introduce
TtParser
#95159 - Overlap inherent impls #95082
- resolve: Do not build expensive suggestions if they are not actually used #95255
- Fix perf issue for auto trait selection #95333
- Remove header field from clean::Function #95096
Mixed
Change Thir to lazily create constants #94876
- Arithmetic mean of relevant regressions: 1.6%
- Arithmetic mean of relevant improvements: -1.0%
- Arithmetic mean of all relevant changes: -0.3%
- Largest improvement in instruction counts: -2.8% on
full
builds ofkeccak check
- Largest regression in instruction counts: 3.5% on
full
builds oftuple-stress check
- Triaged.
- The changes to the primary benchmarks are almost universally green here.
- The secondary benchmarks are more of a mixed bag, but I think we can accept a 3.5% regression on tuple-stress given the overall benefits.
More macro expansion optimizations #95259
- Arithmetic mean of relevant improvements: -1.5%
- Arithmetic mean of all relevant changes: -1.1%
- Largest improvement in instruction counts: -2.0% on
incr-unchanged
builds ofdiesel check
- Largest regression in instruction counts: 0.4% on
incr-full
builds ofunicode-normalization-0.1.19 opt
- Already triaged by nnethercote
- The perf wins clearly outweigh the losses here.
Rollup of 5 pull requests #95382
- Arithmetic mean of relevant regressions: 2.2%
- Arithmetic mean of relevant improvements: -0.4%
- Arithmetic mean of all relevant changes: 1.2%
- Largest improvement in instruction counts: -0.4% on
incr-unchanged
builds ofdeeply-nested-multi check
- Largest regression in instruction counts: 3.2% on
full
builds ofawait-call-tree check
- Left comment
- Changes to the primary benchmarks seem like a wash and probably ignorable (0.33% worse for unicode-normalization-0.1.19, 0.33% better for ripgrep-13.0.0).
- Re secondary benchmarks: 3% worse for await-call-tree (on six scenarios), which is more concerning. I assume PR #95120 is cause.
- Leaving as untriaged.
Lazy type-alias-impl-trait take two #94081
- Arithmetic mean of relevant regressions: 0.5%
- Arithmetic mean of relevant improvements: -0.5%
- Arithmetic mean of all relevant changes: -0.3%
- Largest improvement in instruction counts: -1.0% on
incr-full
builds ofwg-grammar check
- Largest regression in instruction counts: 0.8% on
full
builds ofprojection-caching check
- triaged
- The actual performance changes indicate this ended up a win overall, based on the amount of green.
Nags requiring follow up
None
Nominated Issues
- No nominated issues for
T-compiler
this time.
- No nominated RFCs for
T-compiler
this time.