T Compiler Meeting Agenda 2022 05 12

T-compiler Meeting Agenda 2022-05-12

Announcements

  • Next week: release of Rust stable 1.61
  • Tomorrow time:2022-05-13T13:00:00+02:00 Types Team: Chalkification calendar link, issue
  • 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!)
    • “Replace generic parameter list with separate lists per param kind” compiler-team#515
  • 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: 10 months ago)
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 7 months ago)
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 5 months ago)
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago)
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 4 months ago)
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 54 days ago)
    • “Change compiletest declarations parsing” compiler-team#512 (last review activity: about 5 days ago)
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 5 days ago)
  • Pending FCP requests (check your boxes!)
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • “Tracking Issue for -Z terminal-widthrust#84673
    • “Increase the minimum linux-gnu versions” rust#95026
    • “Stabilize the bundle native library modifier” rust#95818
    • “Remove label/lifetime shadowing warnings” rust#96296
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • No new accepted proposals this time.
  • Finalized FCPs (disposition merge)
    • No new finished FCP (disposition merge) this time.

WG checkins

Checkin text

Checkin text

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Forbid lifetime bounds in nested opaque types in binders” #96970
    • PR pushed by @oli to avoid the regression in P-critical rust#96194

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 the bundle native library modifier” rust#95818
    • @Vadim Petrochenkov added I-compiler-nominated (needs discussion or just team ticking their box?)

Oldest PRs waiting for review

T-compiler

  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: about 47 days ago)
  • “Only tag data if debug assertions are enabled.” rust#95850 (last review activity: about 31 days ago)
    • review assigned to @ghost (self review cc: @cjgillot?)
  • “Warn about dead tuple struct fields” rust#95977 (last review activity: about 28 days ago)
    • previous review from @eddyb
  • “Implement #[deprecated_safe]” rust#95025 (last review activity: about 21 days ago)
    • cc @eddyb and @Esteban K├╝ber ?
  • “Initial work on Miri permissive-exposed-provenance” rust#95826 (last review activity: about 22 days ago)
    • previous review from @RalfJ

Issues of Note

Short Summary

P-critical

T-compiler

  • “nested RPIT and HRTB: unclear semantics and future incompatibility” rust#96194
    • @aliemjay reports an accidental stabilization
    • Thread on irlo
    • Wg-prio Zulip topic with thoughts from @Jack Huey and @cjgillot (esp. comment)
    • T-lang nominated for discussion
    • (authored by @oli): a “small” PR that avoids the issue is up and beta nominated: rust#96970

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

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs

A good week: Several performance improvements, many around macro expansion. Only one regression of note, and that PR author opened an issue to follow up on it.

Triage done by @pnkfelix. Revision range: 468492c2..c51871c4

Summary:

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 11 37 117 65 128
mean 0.7% 0.7% -1.2% -1.6% -1.1%
max 1.5% 1.9% -6.5% -5.2% -6.5%

2 Regressions, 4 Improvements, 1 Mixed; 1 of them in rollups 59 artifact comparisons made in total

Regressions

Add a new Rust attribute to support embedding debugger visualizers #91779 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 88 52 0 0 88
mean 0.4% 0.5% N/A N/A 0.4%
max 0.9% 1.0% N/A N/A 0.9%
  • Original PR author opened issue #96786 to investigate these regressions, and marked as triaged.
  • (PR #96795 claims to resolve some of the regressions, but rust-timer didn’t see any significant change from that.)

Rollup of 6 pull requests #96877 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 18 0 0 0 18
mean 0.4% N/A N/A N/A 0.4%
max 0.7% N/A N/A N/A 0.7%
  • inspected graphs for the benchmarks at top of list of regressions: webrender-2022, regex-1.5.5, clap-3.1.6, cargo-0.60.0. It seems like any long-term effect here is quite minor, and the fact that this PR was tagged as significant is due to a blip in the measurements.
  • marking as triaged.

Improvements

Speed up Token::{ident,lifetime} #96683 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 0 151 82 151
mean N/A N/A -0.9% -0.7% -0.9%
max N/A N/A -6.9% -4.0% -6.9%

Overhaul MacArgs #96546 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 1 1 16 9 17
mean 0.3% 0.2% -0.8% -0.2% -0.8%
max 0.3% 0.2% -1.4% -0.3% -1.4%

Remove ItemLikeVisitor impls from rustc_typeck #96531 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 0 9 9 9
mean N/A N/A -0.3% -0.4% -0.3%
max N/A N/A -0.4% -0.6% -0.4%

Optimize switch sources representation and usage #96838 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 0 4 7 4
mean N/A N/A -0.7% -2.0% -0.7%
max N/A N/A -1.0% -2.6% -1.0%

Mixed

store codegen_fn_attrs in crate metadata #96473 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 6 28 89 39 95
mean 0.3% 0.6% -0.5% -1.6% -0.4%
max 0.6% 2.2% -1.4% -4.8% -1.4%
  • the regressions here were anticipated during development. The only regressions that arose were from doc builds (which I confirmed via inspection of the 6 regressing cases).

Nominated Issues

T-compiler

  • “Stabilize the bundle native library modifier” rust#95818
    • @Vadim Petrochenkov added label I-compiler-nominated
    • PR closes rust#37403
    • Stabilization report at comment

RFC

  • No nominated RFCs for T-compiler this time.

Next week’s WG checkins