T Compiler Meeting Agenda 2024 11 28

T-compiler Meeting Agenda 2024-11-28

Announcements

  • Today, stable 1.83 is out! :tada:
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).

Other WG meetings

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)
  • Pending FCP requests (check your boxes!)
    • “sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets” rust#123617
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
  • MCPs blocked on unresolved concerns
  • Finalized FCPs (disposition merge)
    • “Add --print host-tuple to print host target tuple” rust#125579
    • “make unsupported_calling_conventions a hard error” rust#129935
    • “Fix ICE when passing DefId-creating args to legacy_const_generics.” rust#130443
    • “Stabilize WebAssembly multivalue, reference-types, and tail-call target features” rust#131080
  • Other teams finalized FCPs
    • “Fixup Windows verbatim paths when used with the include! macro” rust#125205
    • “Allow dropping dyn Trait principal” rust#126660
    • “atomics: allow atomic and non-atomic reads to race” rust#128778
    • “Lint against getting pointers from immediately dropped temporaries” rust#128985
    • “Do not consider match/let/ref of place that evaluates to ! to diverge, disallow coercions from them too” rust#129392
    • “Make deprecated_cfg_attr_crate_type_name a hard error” rust#129670
    • “Stabilize expr_2021 fragment specifier in all editions” rust#129972
    • “Check elaborated projections from dyn don’t mention unconstrained late bound lifetimes” rust#130367
    • “Finish stabilization of result_ffi_guaranteesrust#130628
    • “Stabilize const ptr::write* and mem::replacerust#130954
    • “Stabilize s390x inline assembly” rust#131258
    • “Stabilize Arm64EC inline assembly” rust#131781
    • “mark is_val_statically_known intrinsic as stably const-callable” rust#132449

Backport nominations

T-compiler beta / T-compiler stable

  • :beta:"[AIX] Add option -X32_64 to the “strip” command" rust#133217
    • Authored by xingxue-ibm
    • Nominated by contributor mustartt
    • This fixes a lot of test cases on AIX and allows the strip to function properly without OBJECT_MODE=64 (comment)
  • :beta:“Use ReadCache for archive reading in bootstrap” rust#133462
    • Authored and nominated by mustartt
    • Fixes #133268, some AIX specific issues
    • Speeds up the boostrap for 1.84 builds and fixes small build error (comment)
  • No stable nominations for T-compiler this time.

T-types stable / T-types beta

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

PRs S-waiting-on-team

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

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

T-types

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

P-high regressions

P-high beta regressions

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • None

Performance logs

triage logs for 2024-11-26

This week saw more regressions than improvements, mostly due to three PRs that performed internal refactorings that are necessary for further development and modification of the compiler.

Triage done by @kobzol. Revision range: 7d40450b..7db7489f

Summary:

(instructions:u) mean range count
Regressions (primary) 0.6% [0.1%, 3.6%] 57
Regressions (secondary) 0.6% [0.0%, 2.7%] 100
Improvements (primary) -0.5% [-1.5%, -0.2%] 11
Improvements (secondary) -0.4% [-0.5%, -0.3%] 7
All (primary) 0.4% [-1.5%, 3.6%] 68

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

Regressions

Rollup of 8 pull requests #133219 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.7% [0.2%, 1.1%] 6
Regressions (secondary) 0.5% [0.3%, 1.2%] 13
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.7% [0.2%, 1.1%] 6
  • The regressions were on the helloworld benchmark and other tiny crates, and they were reverted in a follow-up merge commit.
  • Marked as triaged.

continue ParamEnv to TypingEnv transition #133212 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.3%, 0.5%] 5
Regressions (secondary) 2.1% [0.1%, 6.6%] 12
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.4% [0.3%, 0.5%] 5
  • Regressions caused by internal refactoring of the type system that is necessary for further improvements.
  • Asked the PR author about the perf. effect of this PR and also of #133242 (mentioned below).
  • Not marking as triaged.

Rollup of 5 pull requests #133280 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.4%] 7
Regressions (secondary) 2.0% [2.0%, 2.0%] 1
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.3% [0.2%, 0.4%] 7
  • The secondary regression is noise.
  • The primary regressions look to be genuine, but they are only on a single benchmark and they are very small, so I don’t think that further investigation is needed.
  • Marked as triaged.

finish Reveal removal #133242 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.7% [0.2%, 3.6%] 11
Regressions (secondary) 0.3% [0.2%, 0.4%] 24
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.7% [0.2%, 3.6%] 11
  • Similar situation as in #133212.
  • Not marking as triaged.

Improvements

Resolve tweaks #132761 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.3% [-0.6%, -0.1%] 68
Improvements (secondary) -1.1% [-1.1%, -1.1%] 1
All (primary) -0.3% [-0.6%, -0.1%] 68

Drop debug info instead of panicking if we exceed LLVM’s capability to represent it #133194 (Comparison Link)

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

Mixed

Rollup of 5 pull requests #133234 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 2.2% [0.2%, 5.5%] 8
Regressions (secondary) 0.8% [0.8%, 0.8%] 1
Improvements (primary) - - 0
Improvements (secondary) -5.9% [-5.9%, -5.9%] 1
All (primary) 2.2% [0.2%, 5.5%] 8
  • The regression was caused by #132732.
  • Asked the PR author if there is a way to reduce the compilation performance cost.
  • Not marking as triaged.

Reduce false positives of tail-expr-drop-order from consumed values (attempt #2) #131326 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.2% [0.2%, 0.2%] 1
Regressions (secondary) 0.5% [0.2%, 2.3%] 15
Improvements (primary) -0.7% [-2.2%, -0.2%] 19
Improvements (secondary) -0.6% [-1.0%, -0.3%] 8
All (primary) -0.7% [-2.2%, 0.2%] 20
  • This was a win on primary benchmarks.
  • Marked as triaged.

#124141 preliminaries #132629 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.2% [0.1%, 0.3%] 29
Regressions (secondary) 0.3% [0.2%, 0.4%] 16
Improvements (primary) - - 0
Improvements (secondary) -0.4% [-0.5%, -0.3%] 5
All (primary) 0.2% [0.1%, 0.3%] 29
  • The regressions are caused by changes in the parser that are required for further cleanup and refactoring work.
  • The regressions are genuine, but tiny. The author has deemed them to be unavoidable.
  • Already marked as triaged by @nnethercote.

Nominated Issues

T-compiler

  • “Lint on combining #[no_mangle] and #[export_name]rust#131558
    • Was nominated for a vibe check from T-compiler (link) but since then it made into final-comment-period so here we’re fine
  • “Lock Major Change Proposal issue” triagebot#1858
    • proposal by @Urgau, Zulip thread, authored the triagebot patch
    • Automatically lock Major Change Proposal issues to comments
    • Goal is to enforce discussions on Zulip
    • Team members with write access (and bots) can still comment

Oldest PRs waiting for review

T-compiler

  • “add error message for c# style named arguments” rust#118733 (last review activity: 11 months ago)
    • cc: @Esteban Küber
  • “link libunwind dynamically and allow controlling it via crt-static on gnullvm targets” rust#122003 (last review activity: 8 months ago)
    • cc: @Vadim Petrochenkov
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 8 months ago)
    • cc @Sparrow Li
  • “Silence errors in expressions caused by bare traits in paths in 2021 edition” rust#125784 (last review activity: 5 months ago)
    • cc: @Esteban Küber for a rebase then cc: @_León Orell Liehr (fmease)
  • “Support target-spec json file extension in various cases” rust#127389 (last review activity: 4 months ago)
    • cc: @Wesley Wiser last time (comments) we mentioned to maybe open an MCP and run a vibe check
    • do we perhaps want to ask the author to draft such a proposal?

Next meetings' agenda draft: hackmd link