---
tags: weekly, rustc
---
# T-compiler Meeting Agenda 2023-06-01
## Announcements
- Today Rust stable 1.70 release!
- [Compiler Team Planning meeting](https://www.google.com/calendar/event?eid=MDJyYnJ1cGFtdWR1c2lnNjFmcHJ2b3JlODFfMjAyMzA2MDJUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-02T10:00:00-04:00>
- [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA2MDVUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-05T10:00:00-04:00>
- Last minute backport to 1.70-stable (and 1.71-beta): https://github.com/rust-lang/rust/pull/112070
- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @_**pnkfelix** or @_**Wesley Wiser** so we can pass it along).
- T-compiler members: check your emails for a message from Felix.
### Other WG meetings ([calendar link](https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com))
- [wg-async weekly](https://www.google.com/calendar/event?eid=ZDYzaGYwYnM4bWs2cHA3ZGRmazhvOGVjOXJfMjAyMzA2MDFUMjAzMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-01T16:30:00-04:00>
- [wg-rls-2.0 weekly sync-up](https://www.google.com/calendar/event?eid=MXJnbzBscDExNHJjNmVsdGhsaW8xcDljMmdfMjAyMzA2MDVUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-05T11:00:00-04:00>
## MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- "Simplify and improve explicitness of the check-cfg syntax" [compiler-team#636](https://github.com/rust-lang/compiler-team/issues/636)
- Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed))
- None at this time
- Old MCPs (not seconded, take a look)
- "Rustc Contributor Program Major Change Proposal" [compiler-team#557](https://github.com/rust-lang/compiler-team/issues/557) (last review activity: 4 months ago)
- "Take MIR `Analysis` by `&mut`" [compiler-team#598](https://github.com/rust-lang/compiler-team/issues/598) (last review activity: 2 months ago)
- "-C linker-flavor=clang" [compiler-team#601](https://github.com/rust-lang/compiler-team/issues/601) (last review activity: 2 months ago)
- "Stable -C binary-dep-depinfo flag" [compiler-team#604](https://github.com/rust-lang/compiler-team/issues/604) (last review activity: about 20 days ago)
- "Increase `TypeId`'s hash from 64 bits to 128 bits." [compiler-team#608](https://github.com/rust-lang/compiler-team/issues/608) (last review activity: about 41 days ago)
- "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610) (last review activity: about 48 days ago)
- "2024: Decrease debuginfo generated by `-Cdebuginfo=1`" [compiler-team#613](https://github.com/rust-lang/compiler-team/issues/613) (last review activity: about 41 days ago)
- "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: about 48 days ago)
- "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) (last review activity: about 41 days ago)
- "Runtime checks for occupied niches" [compiler-team#624](https://github.com/rust-lang/compiler-team/issues/624) (last review activity: about 6 days ago)
- "Add support for Zephyr OS" [compiler-team#629](https://github.com/rust-lang/compiler-team/issues/629) (last review activity: about 6 days ago)
- "Add `mips64r6` option to `target_arch`" [compiler-team#632](https://github.com/rust-lang/compiler-team/issues/632) (last review activity: about 6 days ago)
- "Consistently use "region" terminology in later stages of the compiler" [compiler-team#634](https://github.com/rust-lang/compiler-team/issues/634) (last review activity: about 6 days ago)
- "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) (last review activity: about 6 days ago)
- Pending FCP requests (check your boxes!)
- No pending FCP requests this time.
- Things in FCP (make sure you're good with it)
- "Add a blanket flag to enable/disable codegen UB checks" [compiler-team#625](https://github.com/rust-lang/compiler-team/issues/625)
- "Tier 3 target proposal: bare-metal loongarch64" [compiler-team#628](https://github.com/rust-lang/compiler-team/issues/628)
- "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633)
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- "Make pointer_structural_match normal and warn" [rust#110166](https://github.com/rust-lang/rust/pull/110166)
- "[mir-opt] SimplifyLocals should also clean up debuginfo" [rust#110702](https://github.com/rust-lang/rust/pull/110702)
- "Stabilize inline asm for LoongArch64" [rust#111235](https://github.com/rust-lang/rust/pull/111235)
- "Uplift `clippy::undropped_manually_drops` lint" [rust#111530](https://github.com/rust-lang/rust/pull/111530)
- "Uplift `clippy::invalid_utf8_in_unchecked` lint" [rust#111543](https://github.com/rust-lang/rust/pull/111543)
- "Uplift `clippy::cast_ref_to_mut` lint" [rust#111567](https://github.com/rust-lang/rust/pull/111567)
### WG checkins
- Types team by @**nikomatsakis** and @**Jack Huey** ([previous checkin](https://hackmd.io/8Wy81OhVQ06VG2px9R1eSA#WG-checkins)):
> Checkin text
- @_*WG-mir-opt* by @**oli** ([previous checkin](https://hackmd.io/auk0MATiScWFokXL6RlO-w#WG-checkins)):
> Checkin text
## Backport nominations
[T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler)
- :beta: [1.71.0] "Load only the crate header for `locator::crate_matches`" [rust#111329](https://github.com/rust-lang/rust/pull/111329)
- nominated and authored by @**jyn**
- improves the logic the bootstrap uses to load a crate
<!--
/poll Approve beta backport of #111329?
approve
decline
don't know
-->
- :beta: [1.71.0] "Make struct layout not depend on unsizeable tail" [rust#112062](https://github.com/rust-lang/rust/pull/112062)
- nominated and authored by @**Lukas (lukas-code)**, patch still being in review
- fixes #11048, P-critical unsound regression
<!--
/poll Approve beta backport of #112062?
approve
decline
don't know
-->
- :stable: "change `BorrowKind::Unique` to be a mutating `PlaceContext`" [rust#112070](https://github.com/rust-lang/rust/pull/112070)
- FIY: nominated and approved for beta+stable backport with expedite procedure (see [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/last.20minute.20PR.20.2E.2E.2E.20for.201.2E70.2E0.20.2E.2E.2E.3F/near/362522771))
- fixes #112056, a P-critical unsoundness in the borrowck
[T-rustdoc stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-rustdoc) / [T-rustdoc beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-rustdoc)
- No beta nominations for `T-rustdoc` this time.
- No stable nominations for `T-rustdoc` this time.
:back: / :shrug: / :hand:
## PRs S-waiting-on-team
[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler)
- Issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ)
### Oldest PRs waiting for review
- "avoid deadlock when reporting ice" [rust#111352](https://github.com/rust-lang/rust/pull/111352) (last review activity: about 23 days ago)
- cc: @**Zoxc** (I think)
- "Do not substitute nonexistent lifetime in RPIT in recursive function" [rust#110844](https://github.com/rust-lang/rust/pull/110844) (last review activity: about 21 days ago)
- cc: @**oli** (though this PR seems not so straightforward to review)
- "Extra context for unreachable_pub lint" [rust#111496](https://github.com/rust-lang/rust/pull/111496) (last review activity: about 20 days ago)
- cc: @**davidtwco**
## Issues of Note
### Short Summary
- [0 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical)
- [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee)
- [63 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
- [28 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [0 P-critical, 2 P-high, 0 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
- [1 P-critical, 0 P-high, 1 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [1 P-critical, 35 P-high, 96 P-medium, 17 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable)
### P-critical
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-compiler)
- No `P-critical` issues for `T-compiler` at this time.
[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types)
- "Evade borrowck by wrapping your lifetime crimes in a simple closure" [rust#112056](https://github.com/rust-lang/rust/issues/112056)
- Fixed by #112070 and #112073
[T-rustdoc](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-rustdoc)
- No `P-critical` issues for `T-rustdoc` at this time.
### P-high regressions
[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core)
- "regression - nightly 2023-03-30 -> 2023-03-31 causes linker error when importing wasm_bindgen::JsValue in a proc_macro" [rust#111888](https://github.com/rust-lang/rust/issues/111888)
- @**Ben Kimock (Saethlin)** found a mitigation (see [comment](https://github.com/rust-lang/rust/issues/111888#issuecomment-1567416478))
- who has some more context on wasm bindgens?
- is it P-high?
[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+)
- No unassigned `P-high` nightly regressions this time.
## Performance logs
> [triage logs for 2023-05-30](https://github.com/rust-lang/rustc-perf/blob/dd296e1d57e277a09cec2110f018d429fc19c41d/triage/2023-05-30.md)
A good week overall, with a broad set of improvements to many primary benchmarks.
The main single source of primary regressions is from rollup PR #111869; we are
in the process of narrowing that down to see if there is a root cause.
Triage done by **@pnkfelix**.
Revision range: [cda5becc..1221e43b](https://perf.rust-lang.org/?start=cda5becc27cbc7106646fbc40aacea5e7896d954&end=1221e43bdf413f7c405e9b17ef19d76c88222098&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.3%, 0.5%] | 19 |
| Regressions (secondary) | 0.5% | [0.2%, 2.7%] | 35 |
| Improvements (primary) | -0.6% | [-1.2%, -0.1%] | 84 |
| Improvements (secondary) | -0.5% | [-1.1%, -0.1%] | 15 |
| All (primary) | -0.4% | [-1.2%, 0.5%] | 103 |
3 Regressions, 3 Improvements, 3 Mixed; 4 of them in rollups
30 Untriaged Pull Requests
26 artifact comparisons made in total
#### Regressions
[rustc_ty_utils] Treat `drop_in_place`'s *mut argument like &mut when adding LLVM attributes [#111807](https://github.com/rust-lang/rust/pull/111807) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cda5becc27cbc7106646fbc40aacea5e7896d954&end=f3d597b31c0f101a02c230798afa31a36bdacbc6&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.2%, 0.7%] | 17 |
| Regressions (secondary) | 1.3% | [0.2%, 2.9%] | 6 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [-0.2%, 0.7%] | 18 |
* already triaged last week
Rollup of 6 pull requests [#111869](https://github.com/rust-lang/rust/pull/111869) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f3d597b31c0f101a02c230798afa31a36bdacbc6&end=b08148f6a76010ea3d4e91d61245aa7aac59e4b4&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.4% | [0.2%, 0.6%] | 12 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 2 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [0.2%, 0.6%] | 12 |
* The five primary regressions over 0.4% are to diesel full and incr-full scenarios.
* It is not clear what caused these regressions; pnkfelix started requesting individual rust-timer runs, but has not yet identified any root cause.
Support #[global_allocator] without the allocator shim [#86844](https://github.com/rust-lang/rust/pull/86844) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cade26637fe1c23965ce644299ed5200db7c92dd&end=a2b1646c597329d0a25efa3889b66650f65de1de&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | 0.5% | [0.3%, 0.7%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 1 |
* The 0.2% hit to primary benchmark serde_derive check-incr_unchanged is easily justified by the feature addition here.
* The more interesting question is 44 primary benchmarks saw a regression to their binary size. However, the only one of those of note, in my opinion, is ripgrep, which suffered a 0.43% increase to binary size on various opt scenarios.
* marked as triaged.
#### Improvements
Rollup of 6 pull requests [#111919](https://github.com/rust-lang/rust/pull/111919) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c373194cb6d882dc455a588bcc29c92a96b50252&end=096309e6dc4378e175e524e963332d1a3830ed63&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.7% | [-0.7%, -0.6%] | 2 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 2 |
| All (primary) | -0.7% | [-0.7%, -0.6%] | 2 |
* a small improvement to serde_derive check-{full, incr-full} that seems like its not noise, not completely.
fix: :bug: etc/bash_complettion -> src/etc/... to avoid copy error [#110906](https://github.com/rust-lang/rust/pull/110906) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=eb9da7bfa375ad58bcb946115f3191a2756785e5&end=d300bffa4f0036e9138ef752610d08fc63f87a77&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.8% | [-0.8%, -0.7%] | 2 |
| Improvements (secondary) | -0.5% | [-0.6%, -0.3%] | 6 |
| All (primary) | -0.8% | [-0.8%, -0.7%] | 2 |
* lol helloworld check-{full, incr-unchanged} improved by [-0.80%, -0.74%].
* based on the PR itself, we should consider this to be some confounding factor, not meaningful.
Rollup of 7 pull requests [#111960](https://github.com/rust-lang/rust/pull/111960) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a2b1646c597329d0a25efa3889b66650f65de1de&end=0004b3b984b19646c1f78b09ba497b7bd6e882c1&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.5% | [-1.3%, -0.2%] | 65 |
| Improvements (secondary) | -0.6% | [-1.2%, -0.2%] | 18 |
| All (primary) | -0.5% | [-1.3%, -0.2%] | 65 |
* a lot of primary improvements here, mostly to incr-{unchanged, patched} scenarios
* fired off rust-timer run on specific PR just to see if it was root cause of improvement.
#### Mixed
Rollup of 7 pull requests [#111882](https://github.com/rust-lang/rust/pull/111882) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=52dd1cde59ee86e5d61469ee1befe09c132c777d&end=d5699874dc07d2dfb262d007293853f73c171f7e&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.2% | [0.2%, 0.3%] | 5 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.7%, -0.2%] | 18 |
| Improvements (secondary) | -0.3% | [-0.5%, -0.2%] | 9 |
| All (primary) | -0.2% | [-0.7%, 0.3%] | 23 |
* regressions are to bitmaps {{check, debug}-full, {check, debug, opt}-incr-full}.
* improvements clearly outweigh regressions here
* marked as triaged
Preprocess and cache dominator tree [#111673](https://github.com/rust-lang/rust/pull/111673) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b3cbf7c8351dd48dc2e07a1cdc69620f8e40dd2f&end=97d328012b9ed9b7d481c40e84aa1f2c65b33ec8&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 3 |
| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 7 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.2% | [-1.2%, -1.2%] | 3 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 3 |
* primary benchmarks libc {check, debug}-full and bitmaps check-full regressed a little.
* this pays a bit of upfront cost to avoid a O(n^2) pathology in other planned code.
* marked as triaged.
rustc_privacy: Cleanups and perf improvements to `EmbargoVisitor` [#111260](https://github.com/rust-lang/rust/pull/111260) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=97d328012b9ed9b7d481c40e84aa1f2c65b33ec8&end=c373194cb6d882dc455a588bcc29c92a96b50252&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.4% | [0.3%, 0.6%] | 9 |
| Improvements (primary) | -0.4% | [-1.3%, -0.1%] | 67 |
| Improvements (secondary) | -0.4% | [-0.6%, -0.2%] | 15 |
| All (primary) | -0.4% | [-1.3%, -0.1%] | 67 |
* already marked as triaged
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No I-compiler-nominated issues this time.
[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No I-compiler-nominated RFCs this time.
## Next week's WG checkins
- @_*WG-polymorphization* by @**davidtwco**
- @_*WG-rls2.0* by @**Lukas Wirth**
Agenda draft: https://hackmd.io/LBCwQjC6QFCfan1AHHFVVQ