owned this note changed 2 years ago
Published Linked with GitHub

T-compiler Meeting Agenda 2023-03-02

Announcements

  • T-compiler: P-high Q1 review at time:2023-03-03T10:00:00:00-05
  • Next week Thursday, 9th next Rust stable (1.68) release
  • 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).
  • The Governance RFC has been posted

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)
    • "Lower baseline expectations for i686 unix-like targets" compiler-team#548 (last review activity: about 6 days ago)
    • "configurable rustc timeout for compiletest tests" compiler-team#554 (last review activity: about 48 days ago)
    • "Rustc Contributor Program Major Change Proposal" compiler-team#557 (last review activity: about 48 days ago)
    • "needs_drop as an auto trait" compiler-team#575 (last review activity: about 55 days ago)
    • "Add builtin# for compiler-intrinsic syntax" compiler-team#580 (last review activity: about 1 days ago)
    • "Synthetic Partial Drop Glue" compiler-team#585 (last review activity: about 25 days ago)
    • "Clone "copyables" using copy codegen" compiler-team#588 (last review activity: about 12 days ago)
    • "New tier-2 target for wasm32-wasi-preview2" compiler-team#594 (last review activity: about 4 days ago)
  • Pending FCP requests (check your boxes!)
    • "Add deployment-target print flag for Apple targets" rust#105354
    • "Update the version of musl used on *-linux-musl targets to 1.2.3" rust#107129
  • Things in FCP (make sure you're good with it)
    • "Switch PLT default to "yes" for all targets except x86_64." compiler-team#581
    • "Implementing "<test_binary> list format json" for use by IDE test explorers / runners" compiler-team#592
    • "Add internal_features lint for internal unstable features" compiler-team#596
    • "Make unused_allocation lint against Box::new too" rust#104363
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • "Stabilize rustdoc --test-run-directory" rust#103682
    • "Treat str as containing [u8] for auto trait purposes" rust#107941
    • "rustdoc: search by macro when query ends with !" rust#108143

WG checkins

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

    Translation infrastructure is now per-crate. You can now find the relevant .ftl files within each crate and modifying them only recompiles your current crate.

  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    Most notable changes

    • new solver: write canonicalization chapter #1595
    • update bootstrap guide #1583
    • Add section on comparing types #1570
    • extend bootstrap related documentations #1563

    Most notable WIPs

    • new chapter with examples of diagnostic translation PRs #1621
    • Add back the canonicalization chapter. #1532
    • Improve documentation of MIR queries & passes #1434
    • Document inert vs active attributes #1110

Backport nominations

T-compiler stable / T-compiler beta

  • No beta nominations for T-compiler this time.
  • 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.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

PRs S-waiting-on-team

T-compiler

Oldest PRs waiting for review

T-compiler

  • "Parse unnamed struct and union fields" rust#99754 (last review activity: 3 months ago)
    • unsure, reroll reviewer?
  • "Add consts for AssocConst w/ body & ignore regions in is_satisfied_from_param_env" rust#106965 (last review activity: about 27 days ago)
    • cc @Boxy [she/her]
  • "Require type_map::stub callers to supply file information" rust#104342 (last review activity: about 29 days ago)
    • are you @Wesley Wiser waiting for the author to reply to your comment on perf. run? Can switch review flag?
  • "Split implied and super predicate queries, then allow elaborator to filter only supertraits" rust#107614 (last review activity: about 26 days ago)
    • unsure about the status. @lcnr / @Jack Huey did your comments imply some more design work?
  • "Stabilize movbe and cmpxchg16b target features" rust#107711 (last review activity: about 23 days ago)
    • autoassigned to @pnkfelix, reroll?

Issues of Note

Short Summary

P-critical

T-compiler

  • "1.67 regression with ……::{opaque#0}<'_> does not live long enough error" rust#107516
    • mentioned last meeting, @Jack Huey offered to help (comment)
    • downgrade to P-high? (~1 week to beta branching)
  • "#[target_feature] is allowed on main" rust#108645
    • @nils (Nilstrieb) suggested to high prioritize this unsoundness before it lands into beta
    • Related to rust#108646, not unsound but probably P-high and rust#108655 as well
    • @Léo Lanteri Thauvin will prepare a revert PR or rust#99767 (RFC #69098) (~1 week to beta branching)

T-types

  • "1.67 regression with ……::{opaque#0}<'_> does not live long enough error" rust#107516
    • (see above)

T-rustdoc

  • No P-critical issues for T-rustdoc at this time.

P-high regressions

P-high stable regressions

  • No P-high beta regressions this time.

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-03-01

Some noisy benchmarks impeded performance review this week. There was a notable
improvement to a broad range of primary benchmarks, first from PR #108440, which
revised the encodable proc macro to handle the discriminant separately from its
fields, and second from PR #108375, which inlined a number of methods that had
only a single caller. Both of these PR's were authored by the same contributor;
many thanks Zoxc!

Triage done by @pnkfelix.
Revision range: 3fee48c1..31f858d9

Summary:

(instructions:u) mean range count
Regressions (primary) 0.6% [0.4%, 1.5%] 16
Regressions (secondary) 0.6% [0.3%, 0.9%] 18
Improvements (primary) -0.8% [-17.1%, -0.3%] 112
Improvements (secondary) -0.7% [-1.8%, -0.1%] 50
All (primary) -0.6% [-17.1%, 1.5%] 128

5 Regressions, 4 Improvements, 6 Mixed; 6 of them in rollups
39 artifact comparisons made in total
30 Untriaged Pull Requests

Regressions

errors: generate typed identifiers in each crate #103042 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.1% [1.0%, 1.2%] 2
Regressions (secondary) 2.2% [2.0%, 2.6%] 6
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 1.1% [1.0%, 1.2%] 2
  • already triaged, believed to be noise.

Rollup of 10 pull requests #108421 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.7% [0.3%, 1.3%] 4
Regressions (secondary) 2.2% [2.0%, 2.6%] 6
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.7% [0.3%, 1.3%] 4
  • already triaged, believed to be noise.

Print a backtrace when query forcing fails. #91742 (Comparison Link)

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

Rollup of 9 pull requests #108488 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.4% [0.8%, 2.0%] 2
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 1.4% [0.8%, 2.0%] 2
  • two doc,full regressions: 2% on hyper, 0.76% on serde
  • not worth teasing out of rollup; marked as triaged

MIR-Validate StorageLive. #108175 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.6%, 0.7%] 3
Regressions (secondary) 0.3% [0.3%, 0.5%] 4
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.6% [0.6%, 0.7%] 3
  • regressed helloworld check by 0.6% in three incremental scenarios.
  • note though that these regressions did not show up in the timer run before the PR landed.
  • marked as triaged.

Improvements

Rollup of 6 pull requests #108357 (Comparison Link)

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

Use tcx.ty_error_with_guaranteed in more places, rename variants #108369 (Comparison Link)

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

Emit the enum discriminant separately for the Encodable macro #108440 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.6% [-1.0%, -0.3%] 91
Improvements (secondary) -0.6% [-0.9%, -0.4%] 22
All (primary) -0.6% [-1.0%, -0.3%] 91

rustdoc: reduce allocations when generating tooltips #108098 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -5.1% [-17.0%, -0.6%] 4
Improvements (secondary) -0.9% [-0.9%, -0.9%] 1
All (primary) -5.1% [-17.0%, -0.6%] 4

Mixed

Rollup of 8 pull requests #108339 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.3%, 0.6%] 4
Regressions (secondary) 0.8% [0.7%, 0.9%] 6
Improvements (primary) -0.8% [-3.0%, -0.2%] 8
Improvements (secondary) -0.2% [-0.3%, -0.2%] 2
All (primary) -0.4% [-3.0%, 0.6%] 12
  • seems like a wash, in terms of mix of regressions and improvements. the one outlier was the 3% improvement to opt-full on cranelift-codegen.
  • the primary regressions were to ripgrep opt-full (0.59%), image opt-full (0.51%), cranelift-codegen check-full (0.42%), and cranelift-codegen check-incr-full (0.27%)
  • I do not think its worth trying to dissect the rollup at this point though. Marking as triaged.

diagnostics: if AssocFn has self argument, describe as method #108324 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.1% [1.0%, 1.2%] 2
Regressions (secondary) 2.2% [2.0%, 2.6%] 6
Improvements (primary) - - 0
Improvements (secondary) -2.3% [-2.3%, -2.3%] 1
All (primary) 1.1% [1.0%, 1.2%] 2
  • already triaged as noise.

Update cargo #108330 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 2.5% [2.5%, 2.5%] 1
Improvements (primary) -1.0% [-1.1%, -0.9%] 2
Improvements (secondary) -2.2% [-2.5%, -1.9%] 6
All (primary) -1.0% [-1.1%, -0.9%] 2
  • already triaged as noise

Rollup of 7 pull requests #108386 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.0% [0.9%, 1.1%] 2
Regressions (secondary) 2.0% [0.4%, 2.6%] 7
Improvements (primary) - - 0
Improvements (secondary) -2.5% [-2.5%, -2.5%] 1
All (primary) 1.0% [0.9%, 1.1%] 2
  • primary cranelift-codegen; secondary keccak, coercions, unused-warnings
  • seems like the same cases that were already categorized as noise by nnethercote in several other cases
  • marking as triaged.

Rollup of 7 pull requests #108464 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.4% [0.4%, 0.4%] 1
Improvements (primary) -0.7% [-0.9%, -0.6%] 6
Improvements (secondary) - - 0
All (primary) -0.7% [-0.9%, -0.6%] 6
  • already triaged

Add inlining attributes for query system functions #108375 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.4% [0.2%, 0.7%] 5
Improvements (primary) -0.4% [-1.1%, -0.2%] 38
Improvements (secondary) -0.4% [-0.7%, -0.2%] 12
All (primary) -0.4% [-1.1%, -0.2%] 38
  • wins clearly outweigh losses here.
  • marking as triaged.

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Next week meeting

Checkins:

  • Impl Trait initiative by @oli
  • @_WG-llvm by @nagisa and @Nikita Popov

Agenda draft: https://hackmd.io/Y3MpcGIXRuKpDGmYZV-TJg

Select a repo