T Compiler Meeting Agenda 2021 10 14

T-compiler Meeting Agenda 2021-10-14

Tracking Issue

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 of unknown and unknown in place of pc for x86_64 and i?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
  • Things in FCP (make sure you’re good with it)
  • 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

  • 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

  • Remove docs on Assemble step #1233
  • Added detail to codegen section #1216
  • Update build instructions for rustdoc #1117
  • Document inert vs active attributes #1110
  • Explain the new valtree system for type level constants. #1097

Backport nominations

T-compiler beta / T-compiler stable

T-rustdoc beta / T-rustdoc stable

  • No backport nominations for T-rustdoc this time.

:back: / :shrug: / :hand:

PRs S-waiting-on-team

T-compiler

  • No PRs waiting on T-compiler this time.

Oldest PRs waiting for review

T-compiler

  • “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)
  • “Abort in panic_abort eh_personality” rust#86801 (last review activity: 2 months ago)

Issues of Note

Short Summary

P-critical

T-compiler

  • No P-critical issues for T-compiler this time.

T-rustdoc

  • No P-critical issues for T-rustdoc this time.

P-high regressions

P-high beta 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

triage logs for 2021-10-12

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 of externs)
  • A large number of doc targets regressed very slightly here.
  • Apart from that, biggest changes were to externs and deeply-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 of externs)
  • 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 of keccak)
  • 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

Introduce tcx.get_diagnostic_name #89534

  • Large improvement in instruction counts (up to -3.4% on incr-full builds of ctfe-stress-4)
  • Small regression in instruction counts (up to 0.4% on incr-unchanged builds of helloworld)

Untriaged Pull Requests

Nominated Issues

T-compiler

  • “Add new tier 3 target: x86_64-unknown-nonerust#89062
    • nominated by @josh triplett for T-compiler consideration. On T-lang seems all set.
  • 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

RFC

  • No nominated RFCs for T-compiler this time.