T Compiler Meeting Agenda 2022 12 22

T-compiler Meeting Agenda 2022-12-22

Announcements

  • 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).

Other WG meetings (calendar link)

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
  • Old MCPs (not seconded, take a look)
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 5 months ago)
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 3 months ago)
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 3 months ago)
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 3 months ago)
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 58 days ago)
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: 2 months ago)
    • -Z instrument-xray option” compiler-team#561 (last review activity: 2 months ago)
    • “Upgrade *-linux-musl targets to musl 1.2” compiler-team#572 (last review activity: about 0 days ago)
  • Pending FCP requests (check your boxes!)
    • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418
    • “Add deployment-target –print flag for Apple targets” rust#105354
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • “Tracking issue for the “efiapi” calling convention” rust#65815
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • “Encode spans relative to the enclosing item – enable by default” rust#84762
    • “Make Sized coinductive, again” rust#100386
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • “Don’t normalize in AstConv” rust#101947
    • “make const_err a hard error” rust#102091
    • “Stabilize default_alloc_error_handler” rust#102318
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • “Stabilize raw-dylib for non-x86” rust#102793
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • “Remove drop order twist of && and || and make them associative” rust#103293
    • “Unreserve braced enum variants in value namespace” rust#103578
    • “Remove const eval limit and implement an exponential backoff lint instead” rust#103877
    • “Stabilize native library modifier verbatimrust#104360
    • “Expand a style-guide principle: readability in plain text” rust#104506
    • “Find the right lower bound region in the scenario of partial order relations” rust#104765

WG checkins

None this week

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: “Switch #[track_caller] back to a no-op unless feature gate is enabled” rust#104741
    • nominated by @Michael Goulet (compiler-errors) (comment), r’ed and rolled up
    • Fixes rust#104588, a P-medium regression
    • Also fixes a regression introduced in rust#104219 (same issue, stable-to-beta regression)
  • :beta: “Don’t copy symbols from dylibs with -Zdylib-ltorust#105800
    • backport nominated by @lqd
    • patch addresses rust#105637 a P-critical regression impacting bug reports on ICEs
  • :beta: “Revert “Replace usage of ResumeTy in async lowering with Context”” rust#105915
    • nominated by @Michael Goulet (compiler-errors)
    • Reverts #105250 and fixes #105501 (P-critical issue)
  • :stable: “Don’t copy symbols from dylibs with -Zdylib-ltorust#105800
    • (see beta-backport)

T-types stable / T-compiler beta

  • :beta: “Add IMPLIED_BOUNDS_ENTAILMENT lint rust#105575
    • nominated by @lcnr (more context here and here)
    • backport of an unsoundness fix for #105483, implements a lint (#105572)

T-rustdoc beta / T-rustdoc stable

  • No backport nominations for T-rustdoc this time.

:back: / :shrug: / :hand:

PRs S-waiting-on-team

T-compiler

  • (other hidden issues in progress or waiting on other teams, details here)

Oldest PRs waiting for review

T-compiler

  • “Only specify --target by default for -Zgcc-ld=lld on wasm” rust#101792 (last review activity: 2 months ago)
    • cc @Vadim Petrochenkov
  • “feat: add expansion_growth_limit attr as another expansion limit " rust#103029 (last review activity: 2 months ago)
    • would probably re-roll a review assignment
  • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418 (last review activity: about 57 days ago)
    • T-compiler proposed FCP
  • “Migrating rustc_infer to session diagnostics (part 3)” rust#101936 (last review activity: about 49 days ago)
    • cc @davidtwco
  • “Parse unnamed struct and union fields” rust#99754 (last review activity: about 40 days ago)
    • cc @cjgillot

Issues of Note

Short Summary

P-critical

T-compiler

  • “Seg fault in Rust 1.65.0 if I don’t create temporary variable” rust#105295
    • Fixed by rust#105483 (beta-nominated, with release notes)

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

  • “deref_target_place is not a deref projection” rust#105881
    • regressed in #103880
    • @lqd authored a patch #105905 (merged) (@__BN a follow-up in #105958, being reviewed)

Performance logs

triage logs for 2022-12-20

Relatively quiet week for performance, with most regressions and improvements being pretty small.

Triage done by @simulacrum. Revision range: 109cccbe4f345c0f0785ce860788580c3e2a29f5..8a746f4ac3a489efb724cde813607f3b96c2df7b

Summary:

(instructions:u) mean range count
Regressions (primary) 0.9% [0.2%, 2.8%] 28
Regressions (secondary) 0.7% [0.2%, 1.3%] 39
Improvements (primary) -1.0% [-1.1%, -1.0%] 2
Improvements (secondary) -1.7% [-4.3%, -0.2%] 24
All (primary) 0.8% [-1.1%, 2.8%] 30

3 Regressions, 4 Improvements, 2 Mixed; 3 of them in rollups 53 artifact comparisons made in total

Regressions

use ty::Binder in rustdoc instead of skip_binder #105612 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.5%] 5
Regressions (secondary) 0.5% [0.3%, 0.7%] 9
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.3% [0.2%, 0.5%] 5

The regressions are expected, solely in rustdoc and part of a bugfix.

Use non-ascribed type as field’s type in mir #103880 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 3.1% [2.5%, 3.7%] 2
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) - - 0

Regression does not appear to be noise, however the PR in question has been reverted (due to non-perf regressions).

Add IMPLIED_BOUNDS_ENTAILMENT lint #105575 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.9% [0.2%, 2.3%] 20
Regressions (secondary) 1.6% [0.6%, 2.6%] 12
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.9% [0.2%, 2.3%] 20

New lint for a soundness fix. Regressions relatively limited regardless.

Improvements

Revert “enable ThinLTO for rustc on x86_64-apple-darwin dist builds” #105646 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -1.0% [-1.1%, -0.9%] 2
Improvements (secondary) -2.0% [-2.6%, -0.8%] 7
All (primary) -1.0% [-1.1%, -0.9%] 2

Rollup of 5 pull requests #105892 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -1.0% [-1.1%, -0.9%] 2
Improvements (secondary) -2.2% [-2.6%, -2.0%] 6
All (primary) -1.0% [-1.1%, -0.9%] 2

Revert #103880 “Use non-ascribed type as field’s type in mir” #105905 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.7% [-1.3%, -0.3%] 5
Improvements (secondary) -1.7% [-3.5%, -0.4%] 14
All (primary) -0.7% [-1.3%, -0.3%] 5

Rollup of 5 pull requests #105940 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -1.1% [-1.1%, -1.0%] 2
Improvements (secondary) -1.7% [-2.6%, -0.4%] 9
All (primary) -1.1% [-1.1%, -1.0%] 2

Mixed

Guard ProjectionTy creation against passing the wrong number of substs #105657 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 1.0% [0.7%, 1.2%] 9
Improvements (primary) -0.4% [-0.6%, -0.1%] 2
Improvements (secondary) -0.7% [-0.7%, -0.5%] 8
All (primary) -0.4% [-0.6%, -0.1%] 2

Rollup of 7 pull requests #105918 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.2% [0.2%, 0.2%] 1
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) -2.1% [-4.4%, -0.8%] 12
All (primary) 0.2% [0.2%, 0.2%] 1

Nominated Issues

T-compiler

  • No nominated issues for T-compiler this time.

RFC

  • No nominated RFCs for T-compiler this time.

Next week’s WG checkins

None (WG-checkins paused for a few weeks)