T Compiler Meeting Agenda 2022 03 10

T-compiler Meeting Agenda 2022-03-10

Tracking Issue

Announcements

  • Tomorrow time:2022-03-10T10:00:00-05:00 monthly Compiler Team Planning meeting ( link)
  • 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: 8 months ago)
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 5 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: 2 months ago)
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 48 days ago)
  • Pending FCP requests (check your boxes!)
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • No new accepted proposals this time.
  • Finalized FCPs (disposition merge)
    • “Stabilize const_fn_fn_ptr_basics, const_fn_trait_bound, and const_impl_trait” rust#93827

WG checkins

wg-async has started an “async reading club”, every 2 weeks on Mondays. Check out the link to learn more.

  • @_WG-traits (generic associated types) by @nikomatsakis and @Jack Huey (previous checkin)

A few PRs have landed

Road to stabilization

  • Only 3 untriaged GATs issues remain (but Jack’s taken a look at all, just need a look from Niko)
  • Still working on a “shiny future” design for a GATified Iterator (and maybe other traits)
  • Need to go through current tests and issues, in order to document current behavior, what works, what doesn’t
  • Finally, need to write stabilization report and related docs

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Check method input expressions once” rust#94438
    • pr by @Michael Goulet (compiler-errors) , already merged
    • beta-backport decision was waiting on rust#94596, which is now merged
  • :beta: “Do not recover from Ty? in macro parsing” rust#94593
  • :beta: “Delay bug in expr adjustment when check_expr is called multiple times” rust#94596
    • pr author @Michael Goulet (compiler-errors), already merged
    • fixes rust#94516
    • beta-backport nominated by @Esteban Küber
  • :beta: “Downgrade #[test] on macro call to warning” rust#94624
    • pr author @Esteban Küber, already merged
    • fixes rust#94508, (regression discovered in crater run)
  • :beta: “Update LLVM submodule” rust#94764
  • 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

T-compiler

  • “Allow struct and enum to contain inner attrs” rust#84414
    • assigned to @Vadim Petrochenkov
    • PR discussion progress seemed to stop last year
    • is this waiting on T-lang?
  • “Make specifying repr optional for fieldless enums” rust#88203
  • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • @Vadim Petrochenkov nominated for T-compiler discussion
    • PR is pending FCP request

Oldest PRs waiting for review

T-compiler

  • “Make AST->HIR lowering incremental” rust#88186 (last review activity: 6 months ago)
    • pr author @cjgillot pushed changes and resolved conflicts
    • cc: assignee @mw
  • “RFC-2841: add codegen flag export symbols from executable” rust#85673 (last review activity: 6 months ago)]
    • pr seems to be ready for review (latest comments from last year)
    • review assigned to @nikomatsakis and @bjorn3
  • “Allow use of AddressSanitizer on Windows by linking to existing libraries” rust#89369 (last review activity: 4 months ago)
    • assigned to @Wesley Wiser
    • latest discussion in T-compiler led to the conclusion that a Windows / ASAN expert was better suited to have a look here
    • github comment and (zulip discussion)
    • checking if there’s anything new since then
  • “Improve unsafe diagnostic” rust#91133 (last review activity: 3 months ago)
    • cc: assigned reviewer @Esteban Küber
  • “Change several HashMaps to IndexMap to improve incremental hashing performance” rust#90253 (last review activity: 2 months ago)
    • author replied to comments, pr now has updated perf results
    • cc: assigned reviewer @cjgillot

Issues of Note

Short Summary

P-critical

T-compiler

  • “Binary crashes when statically linked with LTO turned on” rust#94564
    • @Hans Kratz suggested maximum alert since LTO and static linking seems to be broken (zulip topic)
    • provides bisection pointing to nightly-2021-02-14. (see comment).

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 for 2022-03-09

A pretty smooth week. All three regressions were small, and two were isolated to rustdoc alone.

Triage done by @pnkfelix. Revision range: f0c4da49983aa699f715caf681e3154b445fb60b..10dccdc7fcbdc64ee9efe2c1ed975ab8c1d61287

3 Regressions, 3 Improvements, 1 Mixed; 2 of them in rollups 30 Untriaged Pull Requests 53 comparisons made in total

Regressions

Rollup of 9 pull requests #94541

  • Arithmetic mean of relevant regressions: 1.5%
  • Largest regression in instruction counts: 3.9% on full builds of deeply-nested-async check
  • After looking at the performance data, it seems like the regressions to deeply-nested-async are isolated to some slowdown in check_mod_privacy.
  • But AFAICT nothing in this rollup should have affected check_mod_privacy.
  • Chalking this up to optimization noise; marked as triaged.

Support GATs in Rustdoc #94009

  • Arithmetic mean of relevant regressions: 0.8%
  • Largest regression in instruction counts: 1.1% on full builds of ctfe-stress-4 doc
  • Already marked as triaged by rustdoc team; this change makes rustdoc track more data, which inevitably leads to perf regressions.

rustdoc: Stop textually replacing Self in doc links before resolving them #93805

  • Arithmetic mean of relevant regressions: 0.3%
  • Arithmetic mean of all relevant changes: 0.3%
  • Largest regression in instruction counts: 1.0% on full builds of serde doc
  • rustdoc team did not expect a regression here.
  • it looks like collect-intra-doc-links got slower. not clear why, though.
  • slowdown was solely observed in serde doc. posted some theories and marked as triaged.

Improvements

  • remove obligation dedup from impl_or_trait_obligations #84944
  • Introduce ConstAllocation. #94597
  • Rollup of 6 pull requests #94761

Mixed

Reopen 91719 #94570

  • Arithmetic mean of relevant regressions: 0.5%
  • Arithmetic mean of relevant improvements: -1.4%
  • Arithmetic mean of all relevant changes: -1.0%
  • Largest improvement in instruction counts: -6.9% on full builds of deeply-nested-async check
  • Largest regression in instruction counts: 1.3% on incr-full builds of piston-image opt
  • Already triaged by workingjubilee when they r+‘ed it.

Nags requiring follow up

No nags requiring follow up

Nominated Issues

T-compiler

  • no_mangle/used static is only present in output when in reachable module" rust#47384
  • “rustc hangs and takes increasing amounts of memory when compiling json crate as dependency” rust#89647
    • @Nikita Popov self-assigned issue
    • … and just closed it now as fixed by rust#94764
  • “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225
    • nominated by @wesley wiser for discussion (comment)
  • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • @Vadim Petrochenkov nominated for T-compiler discussion
    • PR is pending FCP request
    • (discussed in present meeting)

RFC

  • No nominated RFCs for T-compiler this time.