---
# System prepended metadata

title: T-compiler Meeting Agenda 2021-07-01
tags: [' rustc', weekly]

---

---
tags: weekly, rustc
---

# T-compiler Meeting Agenda 2021-07-01

[Tracking Issue](https://github.com/rust-lang/rust/issues/54818)

## Announcements

- Tomorrow <time:2021-07-02T10:00:00-04:00>, montly [Compiler Team Planning meeting](https://forge.rust-lang.org/compiler/steering-meeting.html)

## MCPs/FCP

- New MCPs (take a look, see if you like them!)
  - "CI should exercise (subset of) tests under --stage 1" [compiler-team#439](https://github.com/rust-lang/compiler-team/issues/439)
  - "Accept `pc` in place of `unknown` and `unknown` in place of `pc` for `x86_64` and `i?86` targets" [compiler-team#441](https://github.com/rust-lang/compiler-team/issues/441)
  - "Encode spans relative to the enclosing item" [compiler-team#443](https://github.com/rust-lang/compiler-team/issues/443)
- Old MCPs (not seconded, take a look :point_right: **NEW**: testing age timestamps)
  - "Add different entry points for x.py" [compiler-team#396](https://github.com/rust-lang/compiler-team/issues/396) (last comment: 6 months ago)
  - "rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat "stable"?" [compiler-team#403](https://github.com/rust-lang/compiler-team/issues/403) (last comment: 5 months ago)
  - "LLVM plugin support in Rust" [compiler-team#419](https://github.com/rust-lang/compiler-team/issues/419) (last comment: +3 months ago)
  - "Don't steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt" [compiler-team#437](https://github.com/rust-lang/compiler-team/issues/437) (last comment: 20 days ago)
- Pending FCP requests (check your boxes!)
  - "Write text output files to stdout if options like `-o -` or `--emit asm=-` are provided" [compiler-team#431](https://github.com/rust-lang/compiler-team/issues/431)
- Things in FCP (make sure you're good with it)
  - "Promote `aarch64-apple-ios-sim` to Tier 2" [compiler-team#428](https://github.com/rust-lang/compiler-team/issues/428)
  - "Merge rustc_codegen_gcc backend as compiler/rustc_codegen_gcc" [compiler-team#442](https://github.com/rust-lang/compiler-team/issues/442)
- Accepted MCPs
  - "Allow changing the bug report url for the ice hook" [compiler-team#436](https://github.com/rust-lang/compiler-team/issues/436)
  - "Transfer on-disk hash table implementation (odht crate) to rust-lang org" [compiler-team#438](https://github.com/rust-lang/compiler-team/issues/438)
- Finalized FCPs (disposition merge)
  - "Tracking issue for `ops::Bound::cloned()`" [rust#61356](https://github.com/rust-lang/rust/issues/61356)
  - "Support forwarding caller location through trait object method call" [rust#81360](https://github.com/rust-lang/rust/pull/81360)
  - "Ignore derived Clone and Debug implementations during dead code analysis" [rust#85200](https://github.com/rust-lang/rust/pull/85200)
  - "When using `process::Command` on Windows, environment variable names must be case-preserving but case-insensitive" [rust#85270](https://github.com/rust-lang/rust/pull/85270)
  - "Redefine `ErrorKind::Other` and stop using it in std." [rust#85746](https://github.com/rust-lang/rust/pull/85746)
  - "Stabilize span_open() and span_close()." [rust#86136](https://github.com/rust-lang/rust/pull/86136)

### WG checkins

@*wg-rfc-2229* by @nikomatsakis, @matthewjasper
>- Feature is now enabled by default and lint is now part of the edition lint
>- PR approved for -Zprofile-closures which dumps the closure size before and after the feature. This would generate a CSV which can be imported in the [first sheet here](https://docs.google.com/spreadsheets/d/1WUKERwkpJkYhQ-rt0aTQqg-7kcupC7pwKsgxk8v54qc/edit?usp=sharing)
>- Based on profile of rustc we made an optimization to reduce the sizes of closures which seems to be effective. PR [#86701](https://github.com/rust-lang/rust/pull/86701) is open right now and has more details.

@*WG-rls2.0* by @**matklad**:
>Steering issues covered by this checkin: 
>* https://github.com/rust-analyzer/rust-analyzer/issues/8486
>* https://github.com/rust-analyzer/rust-analyzer/issues/8972

>Hightlights:
>* rust-analyzer now expands attribute-like proc macros.
> * We started a conversation with the core team about moving rust-analyzer to the rust-lang project.
  Theres little actual progress though, still waiting for the kickoff meeting to get scheduled. 
>* We started groundwork to improve code completion quality: added reliable preformance tests, fixed three O(N^2) algorithms, added regression tests for irrelevant completion.
>* We are making good progress on fixing all false errors: https://github.com/rust-analyzer/rust-analyzer/issues/8961
  In general, rust-analyzer now supports most of Rust.
>* We are tentatively thinking about designing the "final" API that the compiler exposes for the IDE:
  https://github.com/rust-analyzer/rust-analyzer/issues/8713
  

## 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)
- No backport nominations for `T-compiler` this time.

[T-libs-impl stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-libs-impl) / [T-libs-impl beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-libs-impl)
- No backport nominations for `T-libs-impl` 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)
- :beta: "Revert "List trait impls before methods from deref in the sidebar ..."" [rust#86564](https://github.com/rust-lang/rust/pull/86564)
  - opened by @**jsha** 
  - beta-backport since it affects the sidebar display of methods in stdlib docs, substantial impact on people's doc-reading experience if it lands in stable.
  - reverts commit [8a05892](https://github.com/rust-lang/rust/commit/8a058926ecd6d0988714f8f7a5a31293c533f8c6) and fixes [#85618](https://github.com/rust-lang/rust/issues/85618)
  - r'ed by @**Joshua Nelson** 
- 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?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler)
- "Build aarch64-apple-ios-sim as part of the full macOS build" [rust#85782](https://github.com/rust-lang/rust/pull/85782)
  - MCP [compiler-team#428](https://github.com/rust-lang/compiler-team/issues/428) was seconded, anything else to do from `T-compiler`?

[T-libs](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-libs)
- "Show type for docs slice Chunks" [rust#77938](https://github.com/rust-lang/rust/pull/77938)
  - being reviewed by T-libs
- "Fix linker error" [rust#85953](https://github.com/rust-lang/rust/pull/85953)
  - PR is being followed on [Zulip T-libs](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/Using.20weak!.20in.20fs.3A.3Ahard_link)
- "core: add unstable no_floating_point to disable float formatting code" [rust#86048](https://github.com/rust-lang/rust/pull/86048)
  - (pr is being reviewed and discussed by T-libs)

## Issues of Note

### Short Summary

- [5 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical)
  - [4 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee)
- [81 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
  - [53 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [2 P-critical, 0 P-high, 1 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, 3 P-high, 2 P-medium, 0 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [2 P-critical, 49 P-high, 83 P-medium, 11 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?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3AT-compiler)
- "run-make-fulldeps/pgo-branch-weights fails on AArch64 Linux" [rust#78226](https://github.com/rust-lang/rust/issues/78226)
  - only fails on aarch64 arm
  - @**simulacrum** [comments](https://github.com/rust-lang/rust/issues/78226#issuecomment-866299280) that tests for this are disabled but a fix for 1.54 would be good
  - being investigated by @**Jamie Cunliffe** [see comment](https://github.com/rust-lang/rust/issues/78226#issuecomment-868570487)
- "add back support for inner attributes on non-block expressions?" [rust#84879](https://github.com/rust-lang/rust/issues/84879)
  - will be closed after [rust#85193](https://github.com/rust-lang/rust/pull/85193) is beta backported (#85193 is merged and `beta-accepted`)
- "Unstable fingerprints - what to do on beta (and stable)" [rust#84970](https://github.com/rust-lang/rust/issues/84970)
  - discussed [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-06-24.20.2354818/near/243797032)
  - @**Aaron Hill** comments about addressing the [sub-obligation](https://github.com/rust-lang/rust/issues/85360) and [the overflow](https://github.com/rust-lang/rust/issues/84963) issues, other than those all known issues are fixed
  - @**estebank** [offered to have a look](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-06-17.20.2354818/near/243025573)
  - general feeling is to re-enable incr-comp again in 1.54
- "iter::Fuse is unsound with how specialization currently behaves around HRTB fn pointers" [rust#85863](https://github.com/rust-lang/rust/issues/85863)
  - @**cuviper** ([comment](https://github.com/rust-lang/rust/issues/85863#issuecomment-871797016)) opened pr [rust#86765](https://github.com/rust-lang/rust/pull/86765) and [rust#86766](https://github.com/rust-lang/rust/pull/86766) 
- "TrustedRandomAccess optimization for Zip containing vec::IntoIter is unsound with how specialization currently behaves around HRTB fn pointers" [rust#85873](https://github.com/rust-lang/rust/issues/85873)
  - @**Frank Steffahn** authored pr [rust#85874](https://github.com/rust-lang/rust/pull/85874) that should close this issue

[T-libs](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3AT-libs)
- "iter::Fuse is unsound with how specialization currently behaves around HRTB fn pointers" [rust#85863](https://github.com/rust-lang/rust/issues/85863)
  - see above (does T-libs need to be tagged?)
- "TrustedRandomAccess optimization for Zip containing vec::IntoIter is unsound with how specialization currently behaves around HRTB fn pointers" [rust#85873](https://github.com/rust-lang/rust/issues/85873)
  - see above (does T-libs need to be tagged?)

[T-rustdoc](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3AT-rustdoc)
- No `P-critical` issues for `T-rustdoc` 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-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-release+-label%3AT-rustdoc+-label%3AT-core)
- No unassigned `P-high` nightly regressions this time.

## Performance logs

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

We only have partial results this week (more details below). From the results we have collected, we have one small regression and several improvements.
Also, there was a broad [max-rss regression](https://perf.rust-lang.org/compare.html?start=29cd70d40722930e66a8b726fe58a7bd1d64a22b&end=6b354a13820a444f834a33365ae4a8d97d7d27ce&stat=max-rss) from 11 days ago and narrower [max-rss regression](https://perf.rust-lang.org/compare.html?start=406d4a9cc3b9601cf98a07c6c83e0227d64f5d48&end=4573a4a879a8e1f773944a8859e4dcd136138af8&stat=max-rss) from 9 days ago.

This week we had some problems with missing benchmark results for some of the commits (we believe this is due to triagebot being out of service for a while). Thus, there is a gap from
[5a7834050f3a0ebcd117b4ddf0bc1e8459594309](https://github.com/rust-lang/rust/commit/5a7834050f3a0ebcd117b4ddf0bc1e8459594309) to [7c3872e6bfd555d2ad753ac1f871db3bd7f2a547](https://github.com/rust-lang/rust/commit/7c3872e6bfd555d2ad753ac1f871db3bd7f2a547).

The following PR's from that gap were omitted from this analysis.

 * [#86467](https://github.com/rust-lang/rust/issues/86467) - ChrisDenton:win-env-clear, r=JohnTitor
 * [#85427](https://github.com/rust-lang/rust/issues/85427) - ehuss:fix-use-placement, r=jackh726
 * [#86279](https://github.com/rust-lang/rust/issues/86279) - JohnTitor:transparent-zero-size-fields, r=nikomatsakis
 * [#86588](https://github.com/rust-lang/rust/issues/86588) - JohnTitor:rollup-ibgjbkf, r=JohnTitor
 * [#86138](https://github.com/rust-lang/rust/issues/86138) - FabianWolff:issue-85871, r=nikomatsakis
 * [#86573](https://github.com/rust-lang/rust/issues/86573) - Mark-Simulacrum:expat-bump, r=pietroalbini

We have manually enqueued the missing commits for benchmarking on perf.rlo.

Triage done by **@pnkfelix**.
Revision range: [406d4a9cc3b9601cf98a07c6c83e0227d64f5d48..5a7834050f3a0ebcd117b4ddf0bc1e8459594309](https://perf.rust-lang.org/?start=406d4a9cc3b9601cf98a07c6c83e0227d64f5d48&end=5a7834050f3a0ebcd117b4ddf0bc1e8459594309&absolute=false&stat=instructions%3Au)
Revision range: [7c3872e6bfd555d2ad753ac1f871db3bd7f2a547..7ede6e2a2359c1bb9032baffa4fdafe5633749e3](https://perf.rust-lang.org/?start=7c3872e6bfd555d2ad753ac1f871db3bd7f2a547&end=7ede6e2a2359c1bb9032baffa4fdafe5633749e3&absolute=false&stat=instructions%3Au)

1 Regressions, 5 Improvements, 0 Mixed, 1 of them in rollups

#### Regressions

Disambiguate between SourceFiles from different crates even if they have the same path [#86368](https://github.com/rust-lang/rust/issues/86368)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=3487be11d5f3c9afc4d8e44438cdd2af1e98c859&end=80926fc409d671e7da13f08c90642b1e71f800d9&stat=instructions:u) (up to 1.2% on `incr-unchanged` builds of `ctfe-stress-4-check`)

#### Improvements

- Add MIR pass to lower call to `core::slice::len` into `Len` operand [#86383](https://github.com/rust-lang/rust/issues/86383)
- Rollup of 11 pull requests [#86527](https://github.com/rust-lang/rust/issues/86527)
- Derive `Copy` for `VarianceDiagInfo` [#86670](https://github.com/rust-lang/rust/issues/86670)
- Add inflate to pgo [#86697](https://github.com/rust-lang/rust/issues/86697)
- Change vtable memory representation to use tcx allocated allocations. [#86475](https://github.com/rust-lang/rust/issues/86475)

#### Mixed

- None

#### Nags requiring follow up

- Follow up on max-rss regression in [#86034](https://github.com/rust-lang/rust/pull/86034#issuecomment-871488586)

## Nominated Issues

[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- Rework SESSION_GLOBALS API [#84961](https://github.com/rust-lang/rust/pull/84961) 
  - Authored by @**GuillaumeGomez**
  - Fixes [rust#84954](https://github.com/rust-lang/rust/issues/84954) (Don't allow overwriting `rustc_span::SESSION_GLOBALS`)
  - Auto-assigned to Felix but `I-nominated` is more for a review request from T-compiler
- ICE: unwrap none error in compiler\rustc_mir\src\monomorphize\collector.rs [#85447](https://github.com/rust-lang/rust/issues/85447)
  - Opened by @kocsis1david
  - Bisection pointing to pr [rust#81172](https://github.com/rust-lang/rust/pull/81172)
  - issue reached stable (see [comment](https://github.com/rust-lang/rust/issues/85447#issuecomment-865882530))
  - previously mentioned by T-compiler ([notes](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-05-20.20.2354818/near/239605615))
  - @**Simon Sapin** asks for more directions on this, also opened [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/ICE.20with.20unresolved.20Pointee.3A.3AMetadata.20projection)
- "Binary size is significant increased from `1.46.0` to `1.51.0`" [rust#86610](https://github.com/rust-lang/rust/issues/86610)
  - perhaps related to one or more issues about the same theme (see mentioned issues, ex. [rust#86431](https://github.com/rust-lang/rust/issues/86431) was mentioned)
  - a FIY for T-compiler and asking for an opinion: is there an actionable for these issues about binary size growing?
- "Allow reifying intrinsics to `fn` pointers." [rust#86699](https://github.com/rust-lang/rust/pull/86699)
  - opened by @**eddyb**, asking for a review ([comment](https://github.com/rust-lang/rust/pull/86699#issuecomment-870745885))
-  "`match` an `std::cmp::Ordering` generates less optimized code in nightly" [rust#86511](https://github.com/rust-lang/rust/issues/86511)
  - a comment mentions these issues [#86391](https://github.com/rust-lang/rust/issues/86391) and [#86354](https://github.com/rust-lang/rust/issues/86354)
  - nominated to help finding someone giving some context 

[T-libs-impl](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-libs-impl)
- No nominated issues for `T-libs-impl` this time.

[T-rustdoc](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-rustdoc)
- Generate links to definition in rustdoc source code pages [#84176](https://github.com/rust-lang/rust/pull/84176)
  - Discussed at length [within T-rustdoc](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/go.20to.20definition.20feature), agreement is on merging as it is and keep it on nightly as long as necessary
  - Perhaps a cursory review from T-compiler to have it merged from someone else than PR author (@**Joshua Nelson** might be able to review this week-end so better from next week)

[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- No nominated RFCs for `T-compiler` this time.
