T Compiler Meeting Agenda 2024 04 04

T-compiler Meeting Agenda 2024-04-04

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

MCPs/FCPs

WG checkins

@T-Types checkin by @Jack Huey:

Backport nominations

Note: many of these regressions were marked at P-high/P-critical since discovered by a crater run (thus impacting one of more crates we use as canary). Also: credit to @Michael Goulet (compiler-errors) for authoring many of PRs fixing them :thank_you:

T-compiler beta / T-compiler stable

  • :beta: “Fix some unsoundness with PassMode::Cast ABI” rust#122619
    • Fixes #122617, P-high unsoundness in LLVM IR
    • authored by @_erikdesjardins
  • :beta: “Update to LLVM 18.1.2” rust#122772
    • Fixes #122476 (thread sanitizer on x86 caused a compilation abort), upstream issue was llvm-project#85226
    • authored by @_Nikita Popov
  • :beta: “Encode implied predicates for traits” rust#122891
    • Fixes #122859 (not marked as regression). Rationale explained at this comment
    • authored by @_Michael Goulet (compiler-errors)
  • :beta: “Make sure to insert Sized bound first into clauses list” rust#123302
    • Fixes #123279 (rationale at this comment)
    • authored by @_Michael Goulet (compiler-errors)
  • :beta: “Don’t inherit codegen attrs from parent static” rust#123310
    • Fixes 2 ICEs: #123274 (found in beta crater run) and #123243
    • Caused by #121644 (the static allocations inherit the codegen flags from their parent statics. In this case we have a static allocation who inherits the #[no_mangle] flag from the parent; however, the allocation doesn’t actually have an item name to use for #[no_mangle])
    • authored by @_Michael Goulet (compiler-errors)
  • :beta: “Only inspect user-written predicates for privacy concerns” rust#123377
    • Fixes #123288 (P-high regression discovered in crater run): “Previously we looked at the elaborated predicates, which, due to adding various bounds on fields, end up requiring trivially true bounds. But these bounds can contain private types, which the privacy visitor then found and errored about.”
    • authored by @_oli
    • being reviewed
  • :beta: “[beta] Fix the f16 and f128 feature gate regression” rust#123445
    • Fixes #123282 (P-high regression discovered in crater run)
    • Fix authored by @_Trevor Gross
    • waiting on review
  • 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 backtrace on windows with current rustc stable” rust#122857
    • Fix released in 1.77.1
  • “regression: unwrap on None in ast lowering” rust#123287
    • Found in beta crater run
    • Crate affected, fails to build docs on docs.rs (downstream issue)

T-types

  • “regression when relating two opaque types in canonical queries” rust#116877
    • filed in Oct 2023, classified as P-critical
    • was fixed, regressed last week (comment)
    • Fixed by #122077, authored by @_oli. RFC approved, PR being reviewed

P-high regressions

P-high beta regressions

  • “regression: ICE failed to get output type of async function” rust#123273
    • Found in crater run, @_Michael Goulet (compiler-errors) self-assigned
  • “regression: unexpected unsized tail ICE” rust#123275
    • Found in beta crater run, new occurrence of #108721 (was fixed by #108754)
    • @_lcnr suggests reverting #120463 (comment)?
    • Issue needs an MCVE: hard to make due to the crates involved (Warp and Hyper)
  • “regression: trait bound is not satisfied” rust#123279
    • Fixed by #123302
  • “regression: type is now private?” rust#123288
    • Fixed by #123377

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2024-04-01

A pretty quiet week, with most changes (dropped from the report below) being due to continuing bimodality in the performance data. No particularly notable changes landed.

Triage done by @simulacrum. Revision range: 73476d49904751f8d90ce904e16dfbc278083d2c..3d5528c287860b918e178a34f04ff903325571b3

Skipping details for brevity. Feel free to have a look at the report after the meeting.

Nominated Issues

T-compiler

  • “Fallout from expansion of redundant import checking” rust#121708
    • Issue opened last month, caused by #117772 (issues when expanding redundant import checking)
    • Nominated by @Josh Triplett (comment): points out that linting this will very likely impact libs-api policy on additions to the prelude
    • reverting the change to avoid the issue reach stable seems complicated (comment)
  • “Consider using llvm-striprust#123151
    • nominated by @Jubilee
    • on various systems, we are encountering reports of people having inadequately-built strip binaries in their PATH that cannot support all Rust compiler use-cases (…) llvm-strip gets everything right, as far as we are concerned

    • Related Zulip topic
  • “regression: compiler had non-unwinding abort” rust#123286
    • another beta crater run regression. Actually we fixed a UB (comment): “People were executing UB, we now prevent that and try to tell them about it”
    • @Ben Kimock (Saethlin) suggests a possible quick fix for a beta backport (comment)

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

Skipping today

Next week’s WG checkins

  • @_T-rust-analyzer by @Lukas Wirth

Next meetings' agenda draft: hackmd link