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