T Compiler Meeting Agenda 2023 09 28

T-compiler Meeting Agenda 2023-09-28

Announcements

Other WG meetings (calendar link)

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
  • Old MCPs (stale MCP might be closed as per MCP procedure)
    • None at this time
  • Old MCPs (not seconded, take a look)
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634(last review activity: 4 months ago)
    • “Add a new --build-id flag to rustc” compiler-team#635(last review activity: 4 months ago)
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636(last review activity: 3 months ago)
    • “Add support for visionOS targets” compiler-team#642(last review activity: about 26 days ago)
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669(last review activity: about 23 days ago)
  • Pending FCP requests (check your boxes!)
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • " Add type field to distinguish json diagnostic outputs" compiler-team#673
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • “Support overriding warnings level for a specific lint via command line” rust#113307
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • “Change how closure and generator types are printed to avoid clash with slice types” compiler-team#675
  • Finalized FCPs (disposition merge)
    • “Add allow-by-default lint for unit bindings” rust#112380
    • “Amend style guide section for formatting where clauses in type aliases” rust#114901

WG checkins

  • @_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin):

    Checkin text

  • @_WG-diagnostics by @Esteban K├╝ber and @oli (previous checkin):

    Checkin text

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: [1.73] “Add a way to decouple the implementation and the declaration of a TyCtxt method.” rust#116052
    • patch authored by @**oli
    • addresses #115819, which is meant to fix #83085
    • Note: either beta backport this or patch #115819 into beta branch (beta backport approved last week)
    • T-rustdoc is tagged but there seems to be little under ./src/librustdoc. Under ./tools/miri there’s more: Should also some other team check this?
  • :beta: [1.73] “Only prevent field projections into opaque types, not types containing opaque types” rust#116156
    • patch authored by @oli
    • fixes #115778, P-high
    • perf. bench result seems neutral (slight improvement on secondary bench)
  • :beta: [1.73] “Update LLVM submodule” rust#116227
    • Just opened, needs review
    • Fixes a few miscompilation regressions
  • No stable nominations for T-compiler this time.

PRs S-waiting-on-team

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • “ICE: unexpected initial operand type.” rust#114858
    • Discussed last week (meeting notes)
    • Agreed to leave it P-critical until today to measure impact after merging of #115215 (happened 2w ago). If no more people pile on this issue, evaluate a P-high downgrade

T-types

  • No P-critical issues for T-types this time.

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 2023-09-26

A very quiet week with the only large change in performance being improvements brought on by @saethlin’s work on cleaning up the FileEncoder used in various places like rustc_metadata and rustc_serialize.

Triage done by @rylev. Revision range: af78bae..27b4eb9

Summary:

(instructions:u) mean range count
Regressions (primary) 0.6% [0.3%, 1.1%] 15
Regressions (secondary) 2.0% [0.2%, 7.1%] 32
Improvements (primary) -0.7% [-1.3%, -0.3%] 70
Improvements (secondary) -0.9% [-3.5%, -0.2%] 31
All (primary) -0.4% [-1.3%, 1.1%] 85

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

Regressions

Fix ui-fulldeps --stage=1 with -Zignore-directory-in-diagnostics-source-blocks #116009 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.4%, 0.5%] 3
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.4% [0.4%, 0.5%] 3
  • This only modified tests so this is noise

rustdoc: correctly render the return type of cross-crate async fns #116084 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.3%, 0.8%] 9
Regressions (secondary) 0.7% [0.3%, 0.9%] 17
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.4% [0.3%, 0.8%] 9

Improvements

Pretty-print argument-position impl trait to name it. #113955 (Comparison Link)

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

compiletest: load supported sanitizers from target spec #115695 (Comparison Link)

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

Do not create a DerefLen place for Box<[T]>. #115794 (Comparison Link)

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

Mixed

Simplify/Optimize FileEncoder #115542 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.0% [0.7%, 1.3%] 2
Regressions (secondary) - - 0
Improvements (primary) -0.6% [-1.2%, -0.2%] 95
Improvements (secondary) -0.6% [-1.2%, -0.3%] 28
All (primary) -0.6% [-1.2%, 1.3%] 97
  • looks like a small regression snuck back in. The regressions seem real, but perhaps it’s not worth it given the much larger amount of improvements.

Enable effects for libcore #114776 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.3%, 0.4%] 4
Regressions (secondary) 0.6% [0.3%, 0.8%] 3
Improvements (primary) - - 0
Improvements (secondary) -0.4% [-0.5%, -0.3%] 4
All (primary) 0.3% [0.3%, 0.4%] 4
  • Per Oli: The perf run shows a few extra executions of queries and metadata encoding, which seems unavoidable to me. We may get the perf back when ripping out the const checker’s logic that is only needed until we enable effects by default for doing const fn callability checks

Enable -Zdrop-tracking-mir by default #107421 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.4%, 0.5%] 2
Regressions (secondary) 4.5% [0.3%, 6.5%] 9
Improvements (primary) -0.4% [-0.4%, -0.4%] 1
Improvements (secondary) -2.5% [-3.3%, -1.9%] 5
All (primary) 0.2% [-0.4%, 0.5%] 3
  • it seems the regressions to await-call-tree are real, but it’s unclear what the underlying cause is.

Add the cfg_match! macro #115416 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.5%, 0.7%] 4
Regressions (secondary) 0.5% [0.5%, 0.6%] 2
Improvements (primary) -1.3% [-1.3%, -1.3%] 1
Improvements (secondary) - - 0
All (primary) 0.2% [-1.3%, 0.7%] 5
  • This is noise

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “Fixes error count display is different when there’s only one error left” rust#114759 (last review activity: about 46 days ago)
    • cc: @cjgillot (the diff is scary, maybe coordinate the effort on this one? See comment)
  • “Also consider call and yield as MIR SSA.” rust#113915 (last review activity: about 46 days ago)
    • cc: @Wesley Wiser (+ pending a perf run triage with negative numbers)
  • “Show more information when multiple impls apply” rust#114811(last review activity: about 44 days ago)
    • There’s a mention to @lcnr. Then rebase and review cc: @Wesley Wiser?

Next week’s WG checkins

  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • Impl Trait initiative by @oli

Next meetings' agenda draft: https://hackmd.io/CGSTpw4WRFec9SDNE58p-A