---
# System prepended metadata

title: T-compiler Meeting Agenda 2023-04-06
tags: [' rustc', weekly]

---

---
tags: weekly, rustc
---

# T-compiler Meeting Agenda 2023-04-06

## Announcements

- [Compiler Team Planning meeting](https://www.google.com/calendar/event?eid=MDJyYnJ1cGFtdWR1c2lnNjFmcHJ2b3JlODFfMjAyMzA0MDdUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-07T10:00:00-04:00>
- [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA0MTBUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-10T10:00:00-04:00>
- Signal boost this request for contributors for Diagnostics Translation from @**Michael Goulet (compiler-errors)** ([Zulip comment](https://rust-lang.zulipchat.com/#narrow/stream/328238-RustcContributor.3A.3Anew/topic/Diagnostics.20Translation))
- 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).
  - (from @apiraino) in PR "Fix off-by-one error in X87DoubleExtended::from_bits" [rust#100685](https://github.com/rust-lang/rust/pull/100685)
    - @**eddyb** mentions licensing issues [in comment](https://github.com/rust-lang/rust/pull/100685#issuecomment-1220718236)
    - cc: @**Wesley Wiser** (assigned reviewer)

### 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=M2xpa29pZjl1Z2NvazdhZXRzbDlmNnVsZWFfMjAyMzA0MDZUMTgwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-06T14:00:00-04:00>
- [wg-rls-2.0 weekly sync-up](https://www.google.com/calendar/event?eid=MXJnbzBscDExNHJjNmVsdGhsaW8xcDljMmdfMjAyMzA0MTBUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-10T11:00:00-04:00>
- [Async WG triage meeting](https://www.google.com/calendar/event?eid=cXZ1NGZncDF1dXA1NnVnMnA1M2Mzb2lvdWVfMjAyMzA0MTBUMTUzMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-10T11:30:00-04:00>

## MCPs/FCPs

- New MCPs (take a look, see if you like them!)
  - "Rename `wasm32-wasi` target to `wasm32-wasi-preview1`" [compiler-team#607](https://github.com/rust-lang/compiler-team/issues/607) 
- 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: 2 months ago)
  - "`needs_drop` as an auto trait" [compiler-team#575](https://github.com/rust-lang/compiler-team/issues/575) (last review activity: 3 months ago)
  - "Synthetic Partial Drop Glue" [compiler-team#585](https://github.com/rust-lang/compiler-team/issues/585) (last review activity: 2 months ago)
  - "New tier-2 target for `wasm32-wasi-preview2`" [compiler-team#594](https://github.com/rust-lang/compiler-team/issues/594) (last review activity: about 2 days ago)
  - "Add New Values To MIPS_ALLOWED_FEATURES" [compiler-team#595](https://github.com/rust-lang/compiler-team/issues/595) (last review activity: about 13 days ago)
  - "Take MIR `Analysis` by `&mut`" [compiler-team#598](https://github.com/rust-lang/compiler-team/issues/598) (last review activity: about 13 days ago)
  - "-C linker-flavor=clang" [compiler-team#601](https://github.com/rust-lang/compiler-team/issues/601) (last review activity: about 13 days ago)
  - "Add `TyCtxt` wrappers to sort its methods into groups and improve documentation" [compiler-team#603](https://github.com/rust-lang/compiler-team/issues/603) (last review activity: about 13 days ago)
  - "Stable -C binary-dep-depinfo flag" [compiler-team#604](https://github.com/rust-lang/compiler-team/issues/604) (last review activity: about 13 days ago)
- Pending FCP requests (check your boxes!)
  - "Tracking Issue for `debugger_visualizer`" [rust#95939](https://github.com/rust-lang/rust/issues/95939#issuecomment-1496371829) 
  - "Evaluate place expression in `PlaceMention`" [rust#104844](https://github.com/rust-lang/rust/pull/104844#issuecomment-1468653609)
  - "Add deployment-target --print flag for Apple targets" [rust#105354](https://github.com/rust-lang/rust/pull/105354#issuecomment-1354546850)
  - "Update the version of musl used on `*-linux-musl` targets to 1.2.3" [rust#107129](https://github.com/rust-lang/rust/pull/107129#issuecomment-1407200120)
  - "Stabilize raw-dylib, link_ordinal, import_name_type and -Cdlltool" [rust#109677](https://github.com/rust-lang/rust/pull/109677#issuecomment-1491574659)
- Things in FCP (make sure you're good with it)
  - "Add `rustc_abi::FieldIdx`" [compiler-team#606](https://github.com/rust-lang/compiler-team/issues/606) 
  - "Increase `TypeId`'s hash from 64 bits to 128 bits." [compiler-team#608](https://github.com/rust-lang/compiler-team/issues/608) 
- Accepted MCPs
  - "Use `ControlFlow` in HIR `Visitor`" [compiler-team#597](https://github.com/rust-lang/compiler-team/issues/597) 
  - "Add builtin# for compiler-intrinsic syntax" [compiler-team#580](https://github.com/rust-lang/compiler-team/issues/580)
  - "Clone "copyables" using copy codegen" [compiler-team#588](https://github.com/rust-lang/compiler-team/issues/588)
  - "Add `force` option for `--extern` flag" [compiler-team#605](https://github.com/rust-lang/compiler-team/issues/605)
- Finalized FCPs (disposition merge)
  - "Tracking Issue for "C-unwind ABI", RFC 2945" [rust#74990](https://github.com/rust-lang/rust/issues/74990) 
  - "Initial support for return type notation (RTN)" [rust#109010](https://github.com/rust-lang/rust/pull/109010) 

### WG checkins

- Generic Associated Types initiative by @**Jack Huey** ([previous checkin](https://hackmd.io/IvuR59rBR2Ka9opecmfaJQ#WG-checkins)):
  > Nothing new. We have a deep dive retro and next steps scheduled for next week.

- @_*WG-diagnostics* by @**Esteban Küber** and @**oli** ([previous checkin](https://hackmd.io/4CKNflTQQIKOxk7jiuh7NQ#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)
- [1.69.0] :beta: "Move a const-prop-lint specific hack from mir interpret to const-prop-lint and make it fallible" [rust#109938](https://github.com/rust-lang/rust/pull/109938)
  - patch authored by @**oli**, fixes [rust#109743](https://github.com/rust-lang/rust/issues/109743), a P-medium regression found in the beta crater run
  - beta backport nomination @**Michael Goulet (compiler-errors)**
<!--
/poll Approve beta backport of #109938?
approve
decline
don't know
-->

- No stable nominations for `T-compiler` this time.

[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)
- Other issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ)

### Oldest PRs waiting for review

[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler)
- "Change Wasm's `cdylib` etc. to be a "reactor"." [rust#108097](https://github.com/rust-lang/rust/pull/108097) (last review activity: about 41 days ago)
  - who has the context to review this? review assignment has been bouncing for a while
- "Run various queries from other queries instead of explicitly in phases" [rust#108118](https://github.com/rust-lang/rust/pull/108118) (last review activity: about 40 days ago)
  - review staff assigned to @**Wesley Wiser** 
  - unsure about the current status (@_**oli** also discussed the PR design with author)
- "Shrink `process_obligations`" [rust#108380](https://github.com/rust-lang/rust/pull/108380) (last review activity: about 34 days ago)
  - this PR seems to be meant to proceed on its own (i.e. no reviewer needed), right @**nnethercote**?
- "Implement jump threading MIR opt" [rust#107009](https://github.com/rust-lang/rust/pull/107009) (last review activity: 2 months ago)
  - cc @**Jak{e,ob} Degen**
- "Avoid wrong code suggesting for attribute macro" [rust#107254](https://github.com/rust-lang/rust/pull/107254) (last review activity: 2 months ago)
  - cc: @**Esteban Küber** ([previously mentioned](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-03-16/near/342335507) to have a better approach to suggest)

## 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)
- [62 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
  - [30 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, 0 P-high, 4 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
- [0 P-critical, 4 P-high, 2 P-medium, 1 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [0 P-critical, 35 P-high, 96 P-medium, 12 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)
- No `P-critical` issues for `T-types` at this time.

[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)
- No `P-high` beta regressions this time.

[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+)
- "windows-gnu thin-lto test linking error regression" [rust#109797](https://github.com/rust-lang/rust/issues/109797)
  - bisection point to [rust#108089](https://github.com/rust-lang/rust/pull/108089)
  - workaround PR [cargo#11916](https://github.com/rust-lang/cargo/pull/11916) in cargo (Disable test_profile test on windows-gnu)
  - real fix is probably [rust#109806](https://github.com/rust-lang/rust/pull/109806)

## Performance logs

> [triage logs for 2023-04-04](https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-04-04.md)

A large improvement in const evaluation (particularly for large types) in
[#109670](https://github.com/rust-lang/rust/pull/109670) and a large
improvement to many-paged rustdoc workloads in
[#109876](https://github.com/rust-lang/rust/pull/109876) by removing quadratic
behavior. Regressions are comparatively limited this week.

Triage done by **@simulacrum**.
Revision range: [cbc064b341be231403d181402a786cce7f1c73f1..7c96e40da81165beef4f273f44e96eeef5a1bd30](https://perf.rust-lang.org/?start=cbc064b341be231403d181402a786cce7f1c73f1&end=7c96e40da81165beef4f273f44e96eeef5a1bd30&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u)         | mean  | range           | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary)    | 2.3%  | [0.4%, 8.4%]    | 18    |
| Regressions (secondary)  | 1.6%  | [0.3%, 10.7%]   | 26    |
| Improvements (primary)   | -2.5% | [-77.6%, -0.3%] | 63    |
| Improvements (secondary) | -4.0% | [-27.9%, -0.3%] | 52    |
| All  (primary)           | -1.4% | [-77.6%, 8.4%]  | 81    |


1 Regressions, 4 Improvements, 3 Mixed; 2 of them in rollups
54 artifact comparisons made in total

#### Regressions

Insert alignment checks for pointer dereferences when debug assertions are enabled [#98112](https://github.com/rust-lang/rust/pull/98112) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ec7bb8da11f3e5cc73be397b78d2aea4157df300&end=22a7a19f9333bc1fcba97ce444a3515cb5fb33e6&stat=instructions:u)

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

#### Improvements

Rollup of 6 pull requests [#109714](https://github.com/rust-lang/rust/pull/109714) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=acd27bb5572553a4dc9a2d6f21d9a3a68ff8a233&end=40cd0310db7f67867b305c28fb87b5b660e77df1&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.4% | [-0.7%, -0.3%] | 5     |
| Improvements (secondary) | -     | -              | 0     |
| All  (primary)           | -0.4% | [-0.7%, -0.3%] | 5     |


Make init mask lazy for fully initialized/uninitialized const allocations [#109670](https://github.com/rust-lang/rust/pull/109670) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cf32b9de1e8f66526c36ad2927458558d2e81093&end=86792086646b61342c9417b78b8a535392f1045f&stat=instructions:u)

| (instructions:u)         | mean  | range           | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary)    | -     | -               | 0     |
| Regressions (secondary)  | -     | -               | 0     |
| Improvements (primary)   | -     | -               | 0     |
| Improvements (secondary) | -5.1% | [-27.7%, -1.4%] | 17    |
| All  (primary)           | -     | -               | 0     |


Update `ty::VariantDef` to use `IndexVec<FieldIdx, FieldDef>` [#109762](https://github.com/rust-lang/rust/pull/109762) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=276029deae08ad5b62f7d1ef2ea1acb7f5f529d8&end=eb3e9c1f45981b47160543cfd882ca00e69bbfab&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.5% | [-0.6%, -0.5%] | 3     |
| Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 8     |
| All  (primary)           | -0.5% | [-0.6%, -0.5%] | 3     |


rustdoc: make intra-doc link pass non-quadratic for repeated links [#109876](https://github.com/rust-lang/rust/pull/109876) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cf7ada217c8ac63367b184afd9fffaff30f6ed44&end=eb48e9771a924080a2a7a87b403278e61f3061ea&stat=instructions:u)

| (instructions:u)         | mean   | range           | count |
|:------------------------:|:------:|:---------------:|:-----:|
| Regressions (primary)    | -      | -               | 0     |
| Regressions (secondary)  | -      | -               | 0     |
| Improvements (primary)   | -11.8% | [-77.7%, -0.6%] | 8     |
| Improvements (secondary) | -3.6%  | [-3.6%, -3.6%]  | 1     |
| All  (primary)           | -11.8% | [-77.7%, -0.6%] | 8     |


#### Mixed

Add a builtin `FnPtr` trait that is implemented for all function pointers [#108080](https://github.com/rust-lang/rust/pull/108080) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=60660371efe59dfc99644e9d709a1b71e25ae2ac&end=bf57e8ada6dc62369d1cee7ab055fb4074bd2d10&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 3.2%  | [1.1%, 5.5%]   | 10    |
| Regressions (secondary)  | 0.9%  | [0.3%, 1.1%]   | 5     |
| Improvements (primary)   | -1.8% | [-7.3%, -0.3%] | 17    |
| Improvements (secondary) | -4.0% | [-7.5%, -0.4%] | 27    |
| All  (primary)           | 0.1%  | [-7.3%, 5.5%]  | 27    |


Rollup of 8 pull requests [#109692](https://github.com/rust-lang/rust/pull/109692) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bf57e8ada6dc62369d1cee7ab055fb4074bd2d10&end=478cbb42b730ba4739351b72ce2aa928e78e2f81&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.9%  | [0.2%, 9.2%]   | 31    |
| Regressions (secondary)  | 1.7%  | [0.2%, 10.9%]  | 25    |
| Improvements (primary)   | -     | -              | 0     |
| Improvements (secondary) | -1.1% | [-1.6%, -0.5%] | 5     |
| All  (primary)           | 0.9%  | [0.2%, 9.2%]   | 31    |


numeric vars can only be unified with numerical types in deep reject [#109750](https://github.com/rust-lang/rust/pull/109750) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c1d3610ac1ddd1cd605479274047fd0a3f37d220&end=276029deae08ad5b62f7d1ef2ea1acb7f5f529d8&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.6%  | [0.6%, 0.6%]   | 3     |
| Regressions (secondary)  | 0.4%  | [0.3%, 0.5%]   | 8     |
| Improvements (primary)   | -0.6% | [-1.8%, -0.2%] | 44    |
| Improvements (secondary) | -0.8% | [-1.5%, -0.2%] | 3     |
| All  (primary)           | -0.6% | [-1.8%, 0.6%]  | 47    |


## Nominated Issues

[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- "Tracking issue for RFC 2603, "Rust Symbol Mangling (v0)"" [rust#60705](https://github.com/rust-lang/rust/issues/60705) 
  - nominated by @**jyn** ([comment](https://github.com/rust-lang/rust/issues/60705#issuecomment-1483919068)), to stimulate creating this ([exhaustive](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-03-30/near/345706041)?) list of tools that should support v0 mangling
  - [previously visited by T-compiler](https://github.com/rust-lang/rust/issues/60705#issuecomment-1213168334)
  - [Past Zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202022-01-13.20.2354818/near/267886210)
  - A starting point could be [the opening comment](https://github.com/rust-lang/rust/issues/60705#issue-442790471)
  - But also this [comment](https://github.com/rust-lang/rust/issues/60705#issuecomment-1484247817) from @**nnethercote** about v0 breaking `cargo llvm-lines`

[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-rustc-dev-guide* by @**Santiago Pastorino** and @**Yuki Okushi|217081**
- Impl Trait initiative by @**oli**

Agenda draft: https://hackmd.io/XSIWiDBHTyyb33sarCfpEg
