T Compiler Meeting Agenda 2024 05 23

T-compiler Meeting Agenda 2024-05-23

Announcements

  • 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 (calendar link)

MCPs/FCPs

WG checkins

None

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Only make GAT ambiguous in match_projection_projections considering shallow resolvability” rust#125214
    • Authored by compiler-errors
    • This revert will fix #125196, regression emerged in the latest beta crater run
    • About:

      In #123537, I tweaked the hack from #93892 to use resolve_vars_if_possible instead of shallow_resolve. This considers more inference guidance ambiguous but resulted in a crater regressions. I’ve effectively reverted the change to the old behavior. That being said, I don’t like this behavior, but I’d rather keep it for now since #123537 was not meant to make any behavioral changes.

  • 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

These are mostly all regressions in the latest beta crater run (feel free to downgrade priority, if necessary)

T-compiler

  • -C target_cpu=cortex-a72 (and -target-cpu=native on Raspberry Pi) wrongly enables crypto features that are optional on Cortex-A72” rust#125033
  • “regression: opaque types got hidden types registered from within subtype predicate” rust#125192
    • Regressed in #123979, @_oli self-assigned so it’s on their radar
  • “regression: trait bound not satisfied” rust#125194
    • Comment from @lcnr: considering reverting in #119820 for one more beta
  • “regression: type annotations needed” rust#125196
    • Fixed by @_Michael Goulet (compiler-errors) in #125194 (thanks!)
  • “regression: ambiguous outer attributes” rust#125199
    • Comes from #124099, no owner yet for a fix
    • Question from @_apiraino:

      How do we want to handle the changes in #124099? I don’t see a mention of it being aware about breaking changes (PR was rolled up) i.e. just revert or try to fix?

T-types

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

P-high regressions

P-high beta regressions

  • “False positive and highly misleading suggestions for the non-local-definitions lint” rust#124396
    • Fixed by #124539, beta-accepted
  • “endless loop by running cargo test with toolchain 2024-05-14” rust#125269
    • @lcnr authored fix #125343 (thanks!), review in progress but waiting on #125413 first to fix a test (comment)

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2024-05-21

Fairly quiet week with the exception of a very large improvement coming from the switch to rust-lld on nightly Linux. This can have very large impacts on benchmarks where linking dominates the build time (e.g., ripgrep, exa, small binaries like hello-world). Aside from that change, there were a few small regressions that were either deemed worth it or are still being investigated.

Triage done by @rylev. Revision range: 9105c57b..1d0e4afd

Summary:

(instructions:u) mean range count
Regressions (primary) 0.7% [0.1%, 2.5%] 30
Regressions (secondary) 0.5% [0.2%, 0.8%] 5
Improvements (primary) -30.4% [-71.7%, -0.4%] 35
Improvements (secondary) -25.6% [-70.9%, -0.5%] 75
All (primary) -16.1% [-71.7%, 2.5%] 65

4 Regressions, 1 Improvement, 4 Mixed; 2 of them in rollups 66 artifact comparisons made in total

Regressions

Add x86_64-unknown-linux-none target #125023 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.2%, 1.0%] 3
Regressions (secondary) 0.4% [0.4%, 0.4%] 3
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.6% [0.2%, 1.0%] 3
  • Noise

Rollup of 6 pull requests #125144 (Comparison Link)

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

Update expr matcher for Edition 2024 and add expr_2021 nonterminal #123865 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.2% [0.2%, 0.3%] 5
Regressions (secondary) 0.5% [0.2%, 1.7%] 7
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.2% [0.2%, 0.3%] 5
  • It seems the primary benchmark affected by this html5ever seems to spend lots of time in expand_crate which could be impacted by this change.
  • Asked authors and reviewer whether this is worth an investigation or not.

Update unexpected_cfgs lint for Cargo new check-cfg config #125219 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.8% [0.2%, 2.5%] 21
Regressions (secondary) 0.2% [0.2%, 0.2%] 1
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.8% [0.2%, 2.5%] 21
  • Somewhat further fall out from https://github.com/rust-lang/rust/pull/124684. This adds additional output which will slow down benchmarks which emit this warning particularly often.
  • We’re likely ok with this given this is the “unhappy path”.

Improvements

Enable rust-lld on nightly x86_64-unknown-linux-gnu #124129 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -30.8% [-71.8%, -0.5%] 31
Improvements (secondary) -25.6% [-70.9%, -0.5%] 75
All (primary) -30.8% [-71.8%, -0.5%] 31

Mixed

Rollup of 7 pull requests #125120 (Comparison Link)

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

Remove bound checks from BorrowedBuf and BorrowedCursor methods #123786 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.8% [0.8%, 0.8%] 1
Regressions (secondary) 1.3% [1.3%, 1.3%] 1
Improvements (primary) -1.7% [-1.7%, -1.7%] 1
Improvements (secondary) - - 0
All (primary) -0.5% [-1.7%, 0.8%] 2
  • Noise

optimize inplace collection of Vec #123878 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.4% [0.3%, 2.9%] 3
Regressions (secondary) 0.3% [0.2%, 0.3%] 2
Improvements (primary) -22.7% [-37.4%, -0.4%] 5
Improvements (secondary) - - 0
All (primary) -13.7% [-37.4%, 2.9%] 8
  • Improvements vastly outweigh the regressions which seemed to have returned to baseline after this PR.

Follow-up fixes to report_return_mismatched_types #123812 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.1% [0.6%, 1.8%] 3
Regressions (secondary) 0.2% [0.1%, 0.2%] 6
Improvements (primary) - - 0
Improvements (secondary) -1.1% [-1.1%, -1.1%] 2
All (primary) 1.1% [0.6%, 1.8%] 3
  • Single benchmark with a large regression. Asked author to investigate.

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

  • TODO

Next week’s WG checkins

  • @_WG-async by @nikomatsakis and @tmandry
  • @_WG-diagnostics by @Esteban Küber and @oli

Next meetings' agenda draft: hackmd link