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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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