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
- Types Team: ITE (Impl Trait Everywhere) Triage time:2024-03-28T22:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Skip virtual drop for !needs_drop types” compiler-team#730 (Zulip)
- “Add
-Zemit-thin-lto-index=<path>
to enable distributed ThinLTO users” compiler-team#735 (Zulip)
- Old MCPs (not seconded, take a look)
- “Target families for executable format” compiler-team#716 (Zulip) (last review activity: 2 months ago)
- “Add
--emit=
to emit nothing” compiler-team#718 (Zulip) (last review activity: 2 months ago) - “Promote riscv64gc-unknown-linux-musl to tier 2” compiler-team#728 (Zulip) (last review activity: about 27 days ago)
- Pending FCP requests (check your boxes!)
- merge: Tracking Issue for RFC 3013: Checking conditional compilation at compile time (rust#82450)
- @|116107 @|125294 @|119031 @|248906 @|232957
- no pending concerns
- merge: Ignore
-C strip
on MSVC (rust#115120)- @|116083 @|123586 @|125250 @|119031 @_|232957
- no pending concerns
- merge: Make casts of pointers to trait objects stricter (rust#120248)
- @|239881 @|116883 @_|125270
- no pending concerns
- merge: sess: stabilize
-Zrelro-level
as-Crelro-level
(rust#121694)- @|116083 @|119031 @_|232957
- no pending concerns
- merge: Add encoding for
f16
andf128
(rust#122106)- @|119009 @|116083 @|125250 @|232957
- no pending concerns
- merge: Tracking Issue for RFC 3013: Checking conditional compilation at compile time (rust#82450)
- Things in FCP (make sure you’re good with it)
- “allow all command line flags to be passed multiple times, overwriting previous usages” compiler-team#731
- “Stabilize Wasm target features that are in phase 4 and 5” rust#117457
- Accepted MCPs
- “Dist rustc with overflow checks” compiler-team#724 (Zulip)
- MCPs blocked on unresolved concerns
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 2 months ago)
- concern: added-complexity-to-frontend
- merge: Add a new
--build-id
flag to rustc (compiler-team#635)- @|125250 @|116107 @|125294 @|123856
- other-existing-options (by petrochenkov) option-name (by wesleywiser)
- merge: Retire the mailing list and make all decisions on zulip (compiler-team#649)
- merge: Stabilize
--env-set
option (rust#119926)- @|119009 @|116083 @|124288 @|123586 @|125250 @|119031 @|124287 @|116118
- other-rustc-vars (by petrochenkov)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 2 months ago)
- Finalized FCPs (disposition merge)
- “rework opaque type region inference” rust#116891
- “Normalize trait ref before orphan check & consider ty params in alias types to be uncovered” rust#117164
- “instantiate higher ranked goals outside of candidate selection” rust#119820
- “Eagerly instantiate closure/coroutine-like bounds with placeholders to deal with binders correctly” rust#122267
- “transmute: caution against int2ptr transmutation” rust#122379
- “Make inductive cycles always ambiguous” rust#122791
- Other teams finalized FCPs
- “Tracking issue for Allow a re-export for
main
(RFC 1260)” rust#28937 - “
c_unwind
full stabilization request: change inextern "C"
behavior” rust#115285 - “rework opaque type region inference” rust#116891
- “Prevent opaque types being instantiated twice with different regions within the same function” rust#116935
- “Normalize trait ref before orphan check & consider ty params in alias types to be uncovered” rust#117164
- “Add
REDUNDANT_LIFETIMES
lint to detect lifetimes which are semantically redundant” rust#118391 - “instantiate higher ranked goals outside of candidate selection” rust#119820
- “Split refining_impl_trait lint into _reachable, _internal variants” rust#121720
- “Stabilize associated type bounds (RFC 2289)” rust#122055
- “Eagerly instantiate closure/coroutine-like bounds with placeholders to deal with binders correctly” rust#122267
- “transmute: caution against int2ptr transmutation” rust#122379
- “Make inductive cycles always ambiguous” rust#122791
- “Tracking issue for Allow a re-export for
WG checkins
@T-Types checkin by @Jack Huey:
- Associated type bounds stabilized: rust#122055
- Ongoing stabilization of
-Znext-solver=coherence
: rust#121848- Ongoing stabilization of associated type position
impl Trait
: rust#120700- The team is rotating out one lead: https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types/topic/Team.20lead.20nominations/near/430249172
- As usual, lots of progress on cleaning up type system bugs/corner cases: https://github.com/rust-lang/rust/pulls?q=is%3Apr+label%3AT-types+label%3Afinished-final-comment-period
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
andf128
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.
- No beta nominations for
T-types
this time. - No stable nominations for
T-types
this time.
PRs S-waiting-on-team
Issues of Note
Short Summary
- 2 T-compiler P-critical issues
- 65 T-compiler P-high issues
- 1 P-critical, 4 P-high, 3 P-medium, 1 P-low regression-from-stable-to-beta
- 2 P-critical, 1 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly
- 1 P-critical, 35 P-high, 100 P-medium, 14 P-low regression-from-stable-to-stable
P-critical
- “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)
- “regression when relating two opaque types in canonical queries” rust#116877
P-high 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
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
- “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-strip
” rust#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)
- 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