T Compiler Meeting Agenda 2022 11 17

T-compiler Meeting Agenda 2022-11-17

Announcements

Other WG meetings

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
  • Old MCPs (not seconded, take a look)
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 6 months ago)
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 3 months ago)
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 2 months ago)
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 2 months ago)
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 2 months ago)
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 50 days ago)
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 2 months ago)
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 23 days ago)
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 29 days ago)
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 29 days ago)
    • “Redefine dropck in terms of bound-like constructs” compiler-team#563 (last review activity: about 13 days ago)
  • Pending FCP requests (check your boxes!)
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • “Stabilize native library modifier verbatimrust#104360
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • “Make Sized coinductive, again” rust#100386
    • “Handle projections as uncovered types during coherence check” rust#100555
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • “make const_err a hard error” rust#102091
    • “make unaligned_reference a hard error” rust#102513
    • “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

WG checkins

  • @_WG-polymorphization by @davidtwco (previous checkin):

    There’s no update from wg-polymorphization again this cycle, we think it’ll benefit from the trait system refactor work being spearheaded by lcnr.

  • @_WG-rls2.0 by @Lukas Wirth (previous checkin):

    GAT support in r-a landed just a few days before stabilization of the feature. Some improvements were done for making the linkedProjects config of r-a work better for the rust-lang/rust repo. An RFC#3344 has been written that would allow us to get rid of the RUSTC_WRAPPER hack in rust-analyzer. Finally we looked a bit more into whether turning library into a separate workspace would be feasible such that r-a can resolve third party crates used by std as that is still blocking a type inference PR from landing in r-a, unfortunately that seems to introduce too much churn zulip thread.

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: “Revert “Normalize opaques with escaping bound vars”” rust#103509
    • Nominated by @Michael Goulet (compiler-errors)
    • approved, just some tests failing
    • Fixes P-high perf. regression #103423
  • :beta: “Use 64 bits for incremental cache in-file positions” rust#104164
    • Nominated by @Michael Goulet (compiler-errors)
    • Fixes incr-comp issue #79786
  • No stable nominations for T-compiler this time.

T-rustdoc stable / T-rustdoc beta

  • No beta nominations for T-rustdoc this time.
  • No stable nominations for T-rustdoc this time.

:back: / :shrug: / :hand:

PRs S-waiting-on-team

T-compiler

Oldest PRs waiting for review

T-compiler

  • “Fix implied outlives bounds logic for projections” rust#101680 (last review activity: 2 months ago)
    • cc @Esteban Küber for comment but otherwise waiting on @nikomatsakis?
  • “support higher-ranked regions in opaque type inference” rust#100503 (last review activity: about 52 days ago)
    • assigned now to @nikomatsakis
  • “Add powerpc64-ibm-aix as Tier-3 target” rust#102293 (last review activity: about 51 days ago)
  • “Make missing_copy_implementations more cautious” rust#102406 (last review activity: about 49 days ago)
    • @Wesley Wiser is this still waiting for review (comment)?

Issues of Note

Short Summary

P-critical

T-compiler

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

  • “Possible codegen regression when matching against nested enums” rust#104519
    • issue was filed yesterday. seems a miscompilation in nightly 2022-11-16

Performance logs

triage logs for 2022-11-14

A light week for triage. The biggest of the three regressions has a (hopeful) fix up already. The second biggest is a regression we are accepting for sake of correctness of incremental-compilation. The third regression is small and may well be removed as the type system internals are improved. max-rss seems stable.

Triage done by @pnkfelix. Revision range: 57d3c58e..96ddd32c

Summary:

(instructions:u) mean range count
Regressions (primary) 0.7% [0.2%, 1.4%] 87
Regressions (secondary) 0.7% [0.2%, 2.3%] 36
Improvements (primary) -0.5% [-1.2%, -0.3%] 12
Improvements (secondary) -0.9% [-2.0%, -0.2%] 9
All (primary) 0.5% [-1.2%, 1.4%] 99

3 Regressions, 4 Improvements, 3 Mixed; 2 of them in rollups 30 Untriaged Pull Requests 40 artifact comparisons made in total

Regressions

Better error for HRTB error from generator interior #103171 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 1.6% [1.3%, 2.1%] 6
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) - - 0
  • Already triaged (by two different people).
  • Also, according to comment thread, this change is slated to be removed once binders support implied bounds, so even if there is a minor regression attached to this PR, the PR should nonetheless go away eventually.

Recover wrong-cased keywords that start items #99918 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.2%, 1.2%] 80
Regressions (secondary) 0.8% [0.3%, 1.4%] 11
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.6% [0.2%, 1.2%] 80

Hash spans when interning types #104282 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.5% [0.2%, 0.9%] 44
Regressions (secondary) 0.6% [0.2%, 0.9%] 19
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.5% [0.2%, 0.9%] 44
  • already triaged; its a regression we are accepting for sake of correctness

Improvements

Remove allow(rustc::potential_query_instability) in rustc_trait_selection #103723 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.5% [-0.5%, -0.5%] 1
Improvements (secondary) -0.8% [-1.0%, -0.5%] 7
All (primary) -0.5% [-0.5%, -0.5%] 1

Rollup of 9 pull requests #104236 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.3% [-0.4%, -0.2%] 21
Improvements (secondary) -0.3% [-0.6%, -0.2%] 12
All (primary) -0.3% [-0.4%, -0.2%] 21

Rollup of 9 pull requests #104246 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.7% [-0.8%, -0.6%] 3
Improvements (secondary) -0.5% [-0.6%, -0.3%] 4
All (primary) -0.7% [-0.8%, -0.6%] 3

Retry failed macro matching for diagnostics #103898 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.8% [-1.3%, -0.3%] 11
Improvements (secondary) - - 0
All (primary) -0.8% [-1.3%, -0.3%] 11

Mixed

resolve: More detailed effective visibility tracking for imports #103965 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.4%] 4
Regressions (secondary) 0.3% [0.2%, 0.4%] 5
Improvements (primary) -0.2% [-0.2%, -0.2%] 3
Improvements (secondary) -0.5% [-1.1%, -0.4%] 9
All (primary) 0.1% [-0.2%, 0.4%] 7
  • This is an internal refactoring that we need to get more precise tracking of imports in presence of globs.
  • treating the regressions as acceptable; marked it as triaged.

rustc_codegen_ssa: Better code generation for niche discriminants. #102872 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.5% [0.5%, 0.6%] 2
Regressions (secondary) 2.1% [2.1%, 2.1%] 1
Improvements (primary) - - 0
Improvements (secondary) -1.3% [-2.2%, -0.3%] 4
All (primary) 0.5% [0.5%, 0.6%] 2
  • already triaged

Merge crossbeam-channel into std::sync::mpsc #93563 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.8% [0.4%, 1.1%] 5
Regressions (secondary) 0.5% [0.5%, 0.5%] 1
Improvements (primary) -0.7% [-1.1%, -0.3%] 3
Improvements (secondary) - - 0
All (primary) 0.2% [-1.1%, 1.1%] 8
  • already triaged

Nominated Issues

T-compiler

  • “Panic on invalid usages of MaybeUninit::uninit().assume_init()rust#100423
  • “const eval interpreter step limit being hit on nightly for long-running while loop” rust#103814
    • #[const_eval_limit] is now on nightly, people are tripping over it (comments in #93481)
    • @pnkfelix says: the lang team did discuss #103877 yesterday, and I think we managed to convince niko that shifting from a hard error to a lint is reasonable
    • Felix mentions for context also #67217

RFC

  • No nominated RFCs for T-compiler this time.

Next week’s WG checkins

  • @_WG-self-profile @mw and @Wesley Wiser