---
# System prepended metadata

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

---

---
tags: weekly, rustc
---

# T-compiler Meeting Agenda 2020-06-04

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

## Announcements

- Today: 1.44 will be released :tada:
- Tomorrow (Friday): We have our [planning meeting](https://forge.rust-lang.org/compiler/steering-meeting.html); you should [submit proposals!](https://forge.rust-lang.org/compiler/steering-meeting/submit.html)
- Major Changes Proposals:
  - Seconded proposals (in FCP)
    - "RFC 2229 implementation plan" [#292](https://github.com/rust-lang/compiler-team/issues/292)
    - "create windows working group" [#293](https://github.com/rust-lang/compiler-team/issues/293)
    - "Remove Spans from HIR" [#294](https://github.com/rust-lang/compiler-team/issues/294)
    - "move leak-check to during coherence, candidate eval" [#295](https://github.com/rust-lang/compiler-team/issues/295)
    - "Introduce `ty_error`/`ty_error_with_message`/`ty_error_const` to construct error type or const" [#297](https://github.com/rust-lang/compiler-team/issues/297)
    - "`mv src/lib{std,core,alloc,test,etc} std/lib{std,core,alloc,test,etc}`" [#298](https://github.com/rust-lang/compiler-team/issues/298)
    - "Preserve `PlaceContext` through projections" [#300](https://github.com/rust-lang/compiler-team/issues/300)
  - New proposals (not seconded)
    - No new not seconded proposals
  - Old proposals (not seconded)
    - "Integration of the Cranelift backend with rustc" [#270](https://github.com/rust-lang/compiler-team/issues/270)
    - "Decentralize queries" [#277](https://github.com/rust-lang/compiler-team/issues/277)
    - "illumos toolchain builds" [#279](https://github.com/rust-lang/compiler-team/issues/279)
    - "Make `CONTRIBUTING.md` into a series of tutorials" [#296](https://github.com/rust-lang/compiler-team/issues/296)

## Beta-nominations

No beta nominations this time for [`T-compiler`](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3AT-compiler), [`libs-impl`](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3Alibs-impl) and [`T-rustdoc`](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3AT-rustdoc).

## Stable-nominations

No stable nominations this time for [`T-compiler`](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Astable-nominated+label%3AT-compiler), [`libs-impl`](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Astable-nominated+label%3Alibs-impl) and [`T-rustdoc`](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Astable-nominated+label%3AT-rustdoc).

## PR's S-waiting-on-team

[T-compiler S-waiting-on-team](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler)

- "Print environment variables accessed by rustc as special comments into depinfo files" [#71858](https://github.com/rust-lang/rust/pull/71858)
  - In FCP, disposition-merge
  - Assigned to @**simulacrum** 
- "Don't emit structure padding members if no padding is required." [#72541](https://github.com/rust-lang/rust/pull/72541)
  - This is also nominated for T-compiler
  - This needs discussion from some people with LLVM knowledge
  - It sounds like eddyb is saying supporting SPIR-V isn't viable so we shouldn't take this patch regardless.
  - Assigned to @**eddyb**
- "Implement `--extern-location`" [#72603](https://github.com/rust-lang/rust/pull/72603)
  - This is also nominated for T-compiler and T-cargo
  - What process should we follow with this? MCP/RFC?
  - Assigned to @**Matthew Jasper**

No [libs-impl S-waiting-on-team](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3Alibs-impl).

## Issues of Note

### Short Summary

- [4 P-critical issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-critical+)
  - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-critical+no%3Aassignee)
- [37 P-high issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+)
  - [16 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [3 P-medium regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
  - All of them are unassigned.
- [2 P-critical, 4 P-medium, 1 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
  - Only the P-criticals are assigned.
- [71 regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable)
  - [17 of those are not prioritized](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-stable+-label%3AP-critical+-label%3AP-high+-label%3AP-medium+-label%3AP-low).

There is one less `P-critical` issues and 3 less `P-high` issues in comparison with last week.

### P-critical

- "Unsoundness due to variance of trait objects WRT associated types" [#71550](https://github.com/rust-lang/rust/issues/71550)
  - This issue is assigned to @**spastorino** and has an [PR open](https://github.com/rust-lang/rust/pull/71896).
  - Crater run from the fix suggested 16 non-spurious regressions.
  - Niko suspects we should land the PR, at the start of a release cycle.
  - We are starting a new cycle, so should we merge?.
- "Trait object with non-static lifetime is accepted where static lifetime is expected and required" [#72315](https://github.com/rust-lang/rust/issues/72315)
  - This issue is related to the previous one, and fixed by the same [PR](https://github.com/rust-lang/rust/pull/71896).
- "LLVM error: "Instruction does not dominate all uses!" on Windows" [#72470](https://github.com/rust-lang/rust/issues/72470)
  - Assigned to @**pnkfelix**
  - It is also a regression
      - supposedly injected by [PR #71840](https://github.com/rust-lang/rust/pull/71840)
  - Rejects valid code.
  - It's windows only.
  - This seems to indicate incorrect MIR being generated.
  - We've decided to revert.
- "ICE when structurally matching a struct containing an associated type on latest Nightly." [#72896](https://github.com/rust-lang/rust/issues/72896)
  - Detected one day after the nightly release
  - Breaks valid code
  - Assigned to @**lcnr** 

### Unassigned P-high regressions

There are no unassigned P-high regressions.

## Performance logs

[Triage done by njn](https://github.com/rust-lang/rustc-perf/tree/master/triage#triage-logs)

Regressions
- Nothing of note!

Improvements
- [perf: Revert accidental inclusion of a part of #69218](https://github.com/rust-lang/rust/pull/71996)
  ([instructions](https://perf.rust-lang.org/compare.html?start=2873165725c15e96dae521a412065c144d9c7a25&end=664fcd3f046e2a6824602da0fad81e3e2bb0d409&stat=instructions:u))
- [Pass more `Copy` types by value.](https://github.com/rust-lang/rust/pull/72494)
  ([instructions](https://perf.rust-lang.org/compare.html?start=664fcd3f046e2a6824602da0fad81e3e2bb0d409&end=45127211566c53bac386b66909a830649182ab7a&stat=instructions:u)):
  This fixes part of the regression from
  [#72055](https://github.com/rust-lang/rust/pull/72055) from last week.
- [Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/72778)
  ([instructions](https://perf.rust-lang.org/compare.html?start=91fb72a8a9f53de2bcc5638c1358fcb552dba8ce&end=74e80468347471779be6060d8d7d6d04e98e467f&stat=instructions:u))

## Nominated Issues

[T-compiler I-nominated](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)

- "tag/niche terminology cleanup" [#72497](https://github.com/rust-lang/rust/pull/72497)
  - Nominated to determine if this is the terminology we want to use.
  - Assigned to @**eddyb**
- "Don't emit structure padding members if no padding is required." [#72541](https://github.com/rust-lang/rust/pull/72541)
  - Nominated to determine if this is a patch we want to take. 
      - @**eddyb** writes: "I don't think supporting SPIR-V is a plausible goal for the Rust LLVM backend, given all the limitations I've heard about. It would require a lot of transformation of anything involving memory IIRC."
  - Assigned to @**eddyb**
- "Implement `--extern-location`" [#72603](https://github.com/rust-lang/rust/pull/72603)
  - Nominated:
      - to determine what process should we follow with this. MCP/RFC?
      - for visbility on the feature and to elicit review feedback.
  - Assigned to @**Matthew Jasper**  
- "Cycle error through variance computation when using `-> _`." [#72730](https://github.com/rust-lang/rust/issues/72730)
    - (This is an issue)
    - @**eddyb** nominated "for discussion (on the topic of variance of "function item" types)."

[libs-impl I-nominated](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3Alibs-impl)

- "`nth_back()` for `Zip` returns wrong values" [#68536](https://github.com/rust-lang/rust/issues/68536)
  - Nominated to determine how can we fix this problem and to raise awareness of it.

## WG checkins

@*T-compiler/WG-meta* checkin by @**nikomatsakis** and @**spastorino**:

>- Merged the MCP RFC
>- Proposed meeting and elaborated some on the idea of "areas" of the compiler
>- Renamed ICE Breaker groups to notify groups
>- Working on creating a Windows notification group -- will likely pull the trigger soon

@*WG-mir-opt* checkin by @**oli**:

>## Major things
>* "dumb" NRVO optimization #72205
>* Const prop now works on user variables #71518 
>* Thread local storage accesses are now a dedicated runtime operation (mir rvalue) #71192
>* Unused reads of discriminants are now removed, just like unused normal reads #70595 
>* SimplifyLocals optimization is now run repeatedly to a fixed point #70755
>* All mir-opt tests are now `--bless`able #70721
>* Fearlessly optimize away constants #70820
>* mir-opt-level 0 doesn't run optional optimizations anymore #70073
>* MIR drop generation at MIR building time reworked into a structured scheme instead of ad-hoc generation #71840
>* `Operand::Copy` of `&mut T` is unsound #72093 #72820
>    * We now have a dedicated MIR validation pass that checks whether the result of your optimizations upholds a bunch of invariants. Please encode all  invariants you can think of in this pass in addition to documentation.
>
>## Interesting snippets
>* MIR can have multiple `return` terminators and everything is fine #72563
>* Make mir dumps less noisy #71200
>* More aggressively const prop aggregates, mutable variables and field accesses #72135 #71953
>* The `return` terminator is now treated as a read from `_0` (the return place)  #72048
>* SimplifyArmIdentity can now run on mir-opt-level 1 #69756
