T-compiler Meeting Agenda 2021-10-14
Announcements
- :loudspeaker: Next Thursday Oct, 21st release Rust stable 1.56 :loudspeaker:
- Tomorrow time:2021-10-15T10:00:00-04:00, Polonius Hackaton
- We are now asking for feedback on the annual community survey rough draft. Please take a look and add issues for anything you find!
- T-compiler Planning meeting is a week from tomorrow. Get proposals in if you have stuff that would be good for a steering meeting during the October/November cycle.
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- No new proposals this time.
- Old MCPs (not seconded, take a look)
- “rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat “stable”?” compiler-team#403 (last review activity: GH none, Zulip +3 months ago)
- “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: GH none, Zulip about 6 weeks ago)
- “Accept
pc
in place ofunknown
andunknown
in place ofpc
forx86_64
andi?86
targets” compiler-team#441 (last review activity: GH none, Zulip 3 weeks ago) - “Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)” compiler-team#462 (last review activity: GH 25 days ago, Zulip 2 weeks ago)
- “Make
-Z binary-dep-depinfo
the default behavior” compiler-team#464 (last review activity: GH none, Zulip 3 weeks ago)
- Pending FCP requests (check your boxes!)
- “Write text output files to stdout if options like
-o -
or--emit asm=-
are provided” compiler-team#431 - “Tracking issue for
#![feature(const_precise_live_drops)]
” rust#73255
- “Write text output files to stdout if options like
- Things in FCP (make sure you’re good with it)
- “lint internal hashmap iteration” compiler-team#465
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “Make all proc-macro back-compat lints deny-by-default” rust#88041
WG checkins
- @WG-diagnostics by @Esteban Küber and @oli (previous checkin):
- Trait Alias = impl Trait; improvements
- NLL borrowck closer in parity with old borrowck
- Typo suggestions in more places (assoc items and modules/crates)
- Multiple improvements around trait bound presentation
- More accurate expected/found labels when trait paths are the same (long standing confusing issue)
- I now consider type ascription syntax as no longer being problematic (last outstanding issues for common confusables closed)
- Internal refactors & general clean ups
- More parser recovery for common typos in match arms
- Extend C-style printf format string parsing 😅
There’s in flight a style linter for diagnostics, to ensure consistency, which even without merging has already yielded a few clean up PRs
- @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):
Most notable changes
- Document tracing awesomeness #1223
- Update sanitizer documentation #1220
- Parallel codegen #1206
- Parallel docs #1203
Most notable WIPs
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Emit item no type error even if type inference fails” rust#89585
- fixes P-high regression from stable rust#89574
- nomination suggested by @Gary Guo in this comment
- :beta: “Use correct edition for panic in [debug_]assert!().” rust#89622
- nomination suggested by mara in this comment
T-rustdoc beta / T-rustdoc stable
- No backport nominations for
T-rustdoc
this time.
:back: / :shrug: / :hand:
PRs S-waiting-on-team
- No PRs waiting on
T-compiler
this time.
Oldest PRs waiting for review
- “Replace dominators algorithm with simple Lengauer-Tarjan” rust#85013 (last review activity: 4 months ago)
- self-assigned to @pnkfelix
- “Normalize MIR with RevealAll before optimizations.” rust#85254 (last review activity: 3 months ago)
- “move implicit
Sized
predicate to end of list” rust#86011 (last review activity: 2 months ago) - “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: 2 months ago)
- discussed previously
- reviewed by @Wesley Wiser, PR author re-requested review
- “Abort in panic_abort eh_personality” rust#86801 (last review activity: 2 months ago)
- discussed previously, now being reviewed
- @Daniel Frampton reviewed the PR
- Alex Crichton also contributed some thoughts
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 75 T-compiler P-high issues
- 1 P-critical, 2 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 2 P-medium, 1 P-low regression-from-stable-to-nightly
- 1 P-critical, 46 P-high, 83 P-medium, 11 P-low regression-from-stable-to-stable
P-critical
- No
P-critical
issues forT-compiler
this time.
- No
P-critical
issues forT-rustdoc
this time.
P-high regressions
- “no errors encountered even though
delay_span_bug
issued” rust#87757 - “regression: cycle in MIR opts” rust#88972
Unassigned P-high nightly regressions
- “CI: dist-s390x-linux build went from 40min. to 160min with new LLVM pass manager” rust#89609
- significant compilation time regression on Tier 2 target s390x
- filed bug for LLVM pass-manager
- assigned P-high to keep under the radar before the next release cycle
- this has a workaround applied in PR #89666
Performance logs
A relatively quiet week: two smallish regressions, and one largish regression that is isolated to doc builds. A couple of nice small wins as well.
Triage done by @pnkfelix. Revision range: 25ec8273855fde2d72ae877b397e054de5300e10..9475e609b8458fff9e444934a6017d2e590642cf
2 Regressions, 2 Improvements, 2 Mixed; 1 of them in rollups, 42 comparisons made in total
Regressions
Rollup of 12 pull requests #89608
- Moderate regression in instruction counts (up to 0.8% on
incr-unchanged
builds ofexterns
) - A large number of
doc
targets regressed very slightly here. - Apart from that, biggest changes were to
externs
anddeeply-nested-async
. - Left comment noting the above
Move top part of print_item to Tera templates #89695
- Large regression in instruction counts (up to 3.7% on
full
builds ofexterns
) - Large regression for certain doc builds.
- Fix posted in PR #89732; thanks @GuillaumeGomez !
Apply clippy suggestions for rustc and core #89709
- Large regression in instruction counts (up to 2.8% on
full
builds ofkeccak
) - instruction-count regressions in the 1.1% to 2.7% range in keccak and inflate
- Left comment
Improvements
- perf: only check for
rustc_trivial_field_reads
attribute on traits, not items, impls, etc. #89454 - rustdoc: Cleanup various
clean
types #88379
Mixed
Add two inline annotations for hot functions #89495
- Very large improvement in instruction counts (up to -7.1% on
full
builds ofinflate
) - Small regression in instruction counts (up to 0.4% on
incr-unchanged
builds ofhelloworld
)
Introduce tcx.get_diagnostic_name
#89534
- Large improvement in instruction counts (up to -3.4% on
incr-full
builds ofctfe-stress-4
) - Small regression in instruction counts (up to 0.4% on
incr-unchanged
builds ofhelloworld
)
Untriaged Pull Requests
- #89709 Apply clippy suggestions for rustc and core
- #89695 Move top part of print_item to Tera templates
- #89608 Rollup of 12 pull requests
- #89534 Introduce
tcx.get_diagnostic_name
- #89495 Add two inline annotations for hot functions
- #89435 Rollup of 6 pull requests
- #89405 Fix clippy lints
- #89263 Suggest both of immutable and mutable trait implementations
- #89165 Fix read_to_end to not grow an exact size buffer
- #89125 Don’t use projection cache or candidate cache in intercrate mode
- #89103 Migrate in-tree crates to 2021
- #89047 Rollup of 10 pull requests
- #89030 Introduce
Rvalue::ShallowInitBox
- #88945 Remove concept of ‘completion’ from the projection cache
- #88880 Rework HIR API to make invocations of the hir_crate query harder.
- #88824 Rollup of 15 pull requests
- #88804 Revise never type fallback algorithm
- #88719 Point at argument instead of call for their obligations
- #88703 Gather module items after lowering.
- #88627 Do not preallocate HirIds
- #88575 Querify
FnAbi::of_{fn_ptr,instance}
asfn_abi_of_{fn_ptr,instance}
. - #88308 Morph
layout_raw
query intolayout_of
. - #87781 Remove box syntax from compiler and tools
- #87064 Support
#[track_caller]
on closures and generators - #83302 Get piece unchecked in
write
Nominated Issues
- “Add new tier 3 target:
x86_64-unknown-none
” rust#89062- nominated by @josh triplett for T-compiler consideration. On
T-lang
seems all set.
- nominated by @josh triplett for T-compiler consideration. On
- LTO toolchain compatability docs could use an update in case anything has changed in the last year rust#89654
- nominated by @Joshua Nelson
- currently LTO compatibility declared up to 1.46, reporter asks if min. version can be extented to more recent versions
- No nominated RFCs for
T-compiler
this time.