T Compiler Meeting Agenda 2022 01 06

T-compiler Meeting Agenda 2022-01-06

Tracking Issue

Announcements

  • Next week, Jan. the 13rd, the new stable release 1.58 is out
  • 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!)
  • Old MCPs (not seconded, take a look)
    • “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: 6 months ago)
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 3 months ago)
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 27 days ago)
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 27 days ago)
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 10 days ago)
  • Pending FCP requests (check your boxes!)
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • “Stabilize -Z print-link-args as -C print-link-argsrust#91606
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • No new accepted proposals this time.
  • Finalized FCPs (disposition merge)
    • “Remove effect of #[no_link] attribute on name resolution” rust#92034

WG checkins

The biggest team impacting thing is the linter, which is now under MCP (I’m not fully convinced about the current approach) besides that, there have been very small improvements and a lot of smallish regressions that have been triaged

  • @_WG-rustc-dev-guide by @__Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

Checkin text

Backport nominations

T-compiler beta / T-compiler stable

  • No backport 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

T-compiler

  • “Stabilize -Z print-link-args as -C print-link-argsrust#91606
    • Moved to disposition-merge, raised a concern about the flag naming (suggested solution: --print link-args for uniformity)
    • @Josh Triplett will investigate the flag renaming

Oldest PRs waiting for review

T-compiler

  • “Properly track ImplObligationsrust#91030 (last active: 1 month ago)
    • latest reviews from @estebank and @nagisa, assigned to @oli
  • “Let qpath contain NtTy: <$:ty as $:ty>::…rust#91150 (last active: 1 month ago)
    • last review from @Vadim Petrochenkov, assigned to @wesley wiser
  • “improve type abiguity error for functions and methods” rust#89862
  • “debuginfo: Add script for Rust support in lldb-mi” rust#89163
    • previously discussed
    • assigned to @pnkfelix
    • consensus was to close the PR explaining why
    • (now closed)

Issues of Note

Short Summary

P-critical

T-compiler

  • “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598
    • very positive feedback is coming in from users: next steps for this issue?

T-rustdoc

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

P-high regressions

P-high beta regressions

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • “toml 0.4.9 to 0.5.3 compile for a long time on 2021-10-02 nightly” rust#89524
    • Issue seems to be (somehow) related to the new LLVM 13 pass manager
    • @Nikita Popov suggested cherry picking from https://reviews.llvm.org/D98481
    • regression is prioritized P-medium, should it be bumped up a little bit?
    • related: can rust#74705 be updated/closed?

Performance logs

triage logs 2022-01-04

It was a relatively calm, but good week overall. Most of the gains were improvements to rustdoc running times.

Triage done by @pnkfelix. Revision range: e91ad5fc62bdee4a29c18baa5fad2ca42fc91bf4..2b681ac06b1a6b7ea39525e59363ffee0d1a68e5

1 Regressions, 6 Improvements, 1 Mixed; 0 of them in rollups 30 Untriaged PRs 38 comparisons made in total

Regressions

rustc_metadata: Merge items from extern blocks into their parent modules during metadata encoding rather than during metadata decoding #92153

  • Small regression in instruction counts (up to 1.2% on incr-unchanged builds of deeply-nested-closures)
  • Seems like it might be noise (all of the data points are annotated with “?").
  • Left a comment saying even if this is real, it is justifiable.

Improvements

  • rustdoc: Remove String allocation in iteration in print_generic_bounds #92283
  • Reverts #92135 because perf regression #92291
  • rustc_metadata: Encode list of all crate’s traits into metadata #92244
  • Import SourceFiles from crate before decoding foreign Span #92175
  • Add Attribute::meta_kind #92294
  • Do not use LEB128 for encoding u16 and i16 #92314

Mixed

Mark drop calls in landing pads cold instead of noinline #92419

Nominated Issues

T-compiler

  • “Tracking issue for plugin stabilization (plugin, plugin_registrar features)” rust#29597
    • briefly mentioned in [T-compiler meeting](Tracking issue for plugin stabilization) about 2 months ago
    • @Josh Triplett asked what’s still using plugin support (comment)
    • what’s the actionable for T-compiler right now? Is it mostly a T-lang topic?

RFC

  • No nominated RFCs for T-compiler this time.