owned this note
owned this note
Published
Linked with GitHub
---
tags: weekly, rustc
---
# T-compiler Meeting Agenda 2020-09-24
[Tracking Issue](https://github.com/rust-lang/rust/issues/54818)
## Announcements
- Tomorrow we have our [planning meeting](https://forge.rust-lang.org/compiler/steering-meeting.html) at <time:2020-09-25T14:00:00+00:00>
- New MCPs (take a look, see if you like them!)
- "Add 32-bit and 64-bit stderr/stdout files for ui tests" [compiler-team#365](https://github.com/rust-lang/compiler-team/issues/365)
- Old MCPs (not seconded, take a look)
- "Integration of the Cranelift backend with rustc" [compiler-team#270](https://github.com/rust-lang/compiler-team/issues/270)
- "Decentralize queries" [compiler-team#277](https://github.com/rust-lang/compiler-team/issues/277)
- "Infer hidden types without replacing with an inference variable" [compiler-team#325](https://github.com/rust-lang/compiler-team/issues/325)
- "Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it" [compiler-team#350](https://github.com/rust-lang/compiler-team/issues/350)
- "MCP: move compiler/ crates to stable Rust" [compiler-team#358](https://github.com/rust-lang/compiler-team/issues/358)
- "`ty.kind()` -> `ty.data()`" [compiler-team#359](https://github.com/rust-lang/compiler-team/issues/359)
- Pending FCP requests (check your boxes!)
- "Accept RFC 2951 "Linking modifiers for native libraries"" [compiler-team#356](https://github.com/rust-lang/compiler-team/issues/356)
- "Promote aarch64-pc-windows-msvc to Tier 2 Development Platform" [rust#75914](https://github.com/rust-lang/rust/pull/75914)
- Things in FCP (make sure you're good with it)
- "Uplift `temporary-cstring-as-ptr` lint from `clippy` into rustc" [compiler-team#346](https://github.com/rust-lang/compiler-team/issues/346)
- "Uplift `drop-bounds` lint from clippy into rustc" [compiler-team#347](https://github.com/rust-lang/compiler-team/issues/347)
- "Add StatementKind::Intrinsic to MIR" [compiler-team#348](https://github.com/rust-lang/compiler-team/issues/348)
- "Make TyKind Copy and change ty.kind() to return TyKind instead of &TyKind" [compiler-team#363](https://github.com/rust-lang/compiler-team/issues/363)
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- [T-rustdoc] "Stabilize intra-doc links" [rust#74430](https://github.com/rust-lang/rust/pull/74430)
### WG checkins
@*WG-prioritization* checkin by @**Santiago Pastorino**:
>- We published last week a [Call for new contributors](https://blog.rust-lang.org/2020/09/14/wg-prio-call-for-contributors.html). The answer was above our expectations, to this day we have received 13 new applications and we are therefore encouraging new volunteers showing up to also join the [Cleanup crew group](https://rustc-dev-guide.rust-lang.org/notification-groups/cleanup-crew.html).
>- Most of our procedures and work have settled now and not many huge things are happening other than our day to day work.
@*WG-rfc-2229* checkin by @**Aman Arora** and @**nikomatsakis**:
> - Most of the infrastructure to capture Places is in now
> - Work resumed after the break, all existing branches revived.
> - Progress on updating how closures are printed (for non-verbose just removing upvar types)
> - New capture analysis verified to not break existing functionality (all tests up to stage1 tests pass).
## Beta-nominations
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler)
- "Issue 72408 nested closures exponential" [rust#72412](https://github.com/rust-lang/rust/pull/72412)
- Fixes [rust#72408](https://github.com/rust-lang/rust/issues/72408) an exponential compilation time increase
- "[mir-opt] Disable the `ConsideredEqual` logic in SimplifyBranchSame opt" [rust#76837](https://github.com/rust-lang/rust/pull/76837)
- Fixes [rust#76803](https://github.com/rust-lang/rust/issues/76803) a `P-critical` unsound beta regression
- The PR just disables the logic
- "Rebase LLVM onto 11.0.0-rc3" [rust#77063](https://github.com/rust-lang/rust/pull/77063)
- Needed to fix some LLVM 11 regressions, like [rust#76042](https://github.com/rust-lang/rust/issues/76042)
[libs-impl](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3Alibs-impl)
- No beta nominations for `libs-impl` this time.
[T-rustdoc](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-rustdoc)
- No beta nominations for `T-rustdoc` this time.
:back: / :shrug: / :hand:
## Stable-nominations
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler)
- No stable nominations for `T-compiler` this time.
[libs-impl](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3Alibs-impl)
- No stable nominations for `libs-impl` this time.
[T-rustdoc](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-rustdoc)
- 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)
- "Uplift drop-bounds lint from clippy" [rust#75699](https://github.com/rust-lang/rust/pull/75699)
- This is waiting on MCP [compiler-team#347](https://github.com/rust-lang/compiler-team/issues/347), which was seconded 7 days ago.
[libs-impl](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3Alibs-impl)
- No PRs waiting on `libs-impl` this time.
## Issues of Note
### Short Summary
- [4 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AT-compiler+label%3AP-critical+)
- [1 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee)
- [55 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AT-compiler+label%3AP-high+)
- [33 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [3 P-critical, 1 P-high, 4 P-medium, 1 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
- [0 P-critical, 2 P-high, 5 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, 20 P-high, 59 P-medium, 6 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)
- "incorrect code generation for i686 release build for 1.47 beta and nightly" [rust#76042](https://github.com/rust-lang/rust/issues/76042)
- This was discussed last week
- Assigned to @**pnkfelix**
- `I-unsound` issue and beta regression
- The [LLVM bug](https://bugs.llvm.org/show_bug.cgi?id=47278) was fixed and included in the 11.x branch of LLVM
- [Rebasing on top of LLVM 11.0.0-rc3 will fix the issue](https://github.com/rust-lang/rust/pull/77063#issuecomment-696895601)
- Issue is fixed with [rust#77063](https://github.com/rust-lang/rust/pull/77063) backport
- "Optimisation-caused UB during cross-crate compilation" [rust#76387](https://github.com/rust-lang/rust/issues/76387)
- This was discussed last week
- Assigned to @**Aaron Hill**
- Also nominated for discussion
- Is not a regression, this never worked so it was also discussed if this was `P-critical` or `P-high`
- [It's an LLVM bug](https://bugs.llvm.org/show_bug.cgi?id=47444)
- @**Aaron Hill** is [left a patch up for review upstream and can be cherry picked if needed](https://github.com/rust-lang/rust/issues/76387#issuecomment-690610859)
- "regression: get_unchecked resolves to unstable feature use" [rust#76479](https://github.com/rust-lang/rust/issues/76479)
- This was discussed last week
- Assigned to @**pnkfelix**
- Opened by @**simulacrum** after hitting the issue on a crater run
- @**simulacrum** suggested that is expected breakage (before the MCVE was built)
- Beta regression that started on PR [rust#73565](https://github.com/rust-lang/rust/pull/73565) cc @**Matthew Jasper** @**nagisa**
- "starting from nightly-2020-08-18 rustls can't connect to some websites" [rust#76803](https://github.com/rust-lang/rust/issues/76803)
- Unassigned
- Opened by @**Paolo Barbolini**
- Beta regression that started on PR [rust#74748](https://github.com/rust-lang/rust/pull/74748) cc @**Simon Vandel Sillesen** @**oli**
- [Mir optimization bug](https://github.com/rust-lang/rust/issues/76803#issuecomment-693999586)
- [Fix by @**wesleywiser** is in master already](https://github.com/rust-lang/rust/pull/76837) but it's still pending beta backport.
[libs-impl](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3Alibs-impl)
- No `P-critical` issues for `libs-impl` this time.
[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.
### Unassigned P-high regressions
[Beta regressions](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3Aregression-from-stable-to-beta+P-high+no%3Aassignee)
- "Build hang on Linux with nightly and beta toolchains" [rust#76980](https://github.com/rust-lang/rust/issues/76980)
- Unassigned
- It's also nominated
- Build hangs on beta
- @**Eric Huss** bisected it to [rust#73526](https://github.com/rust-lang/rust/pull/73526)
- @**cuviper** [is not aware of any LLVM 11 issue like that ](https://github.com/rust-lang/rust/issues/76980#issuecomment-695805807)
- Assigned `P-high` and requested an MCVE, we probably need to get more context about this issue
[Nightly regressions](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3Aregression-from-stable-to-nightly+P-high+no%3Aassignee)
- "Linker error with wasm target with spaces in install path" [rust#76466](https://github.com/rust-lang/rust/issues/76466)
- Unassigned
- Reported by @**Jordan Miner**
- Nightly regression
- [Probably an LLVM 11 regression](https://github.com/rust-lang/rust/issues/76466#issuecomment-688686973)
- Reporter ran into the issues on a **Win10 64bit** and suggests a possible range of [culprit commits](https://github.com/rust-lang/rust/issues/76466#issuecomment-688686973)
- @**Mason Stallmo** could not reproduce on both Windows or Linux 64bit, therefore suggests a possible [Windows 32bit only regression](https://github.com/rust-lang/rust/issues/76466#issuecomment-693805846)
- @**retep007** [suggests that it may be an lld issue](https://github.com/rust-lang/rust/issues/76466#issuecomment-697130900)
## Performance logs
This was the first week of semi-automated perf triage, and thank goodness:
There was a lot going on. Most regressions are either quite small or already
have a fix published.
[#72412](https://github.com/rust-lang/rust/issues/72412) is probably the most
interesting case. It fixes a pathological problem involving nested closures by
adding cycle detection to what seems to be a relatively hot part of the code.
As a result, most users will see a slight [compile-time
regression](https://perf.rust-lang.org/compare.html?start=2c69266c0697b0c0b34abea62cba1a1d3c59c90c&end=fdc3405c20122fd0f077f5a77addabc873f20e4c&stat=task-clock)
for their crates.
Triage done by **@ecstaticmorse**.
Revision range: [dbb73f8f79ab176a897d5a95e696adb71b957cbe..b01326ab033e41986d4a5c8b96ce4f40f3b38e30](https://perf.rust-lang.org/?start=dbb73f8f79ab176a897d5a95e696adb71b957cbe&end=b01326ab033e41986d4a5c8b96ce4f40f3b38e30&absolute=false&stat=instructions%3Au)
2 Regressions, 5 Improvements, 4 Mixed,
1 of them in rollups
### Regressions
[#76575](https://github.com/rust-lang/rust/issues/76575) compare generic constants using `AbstractConst`s
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=fdc3405c20122fd0f077f5a77addabc873f20e4c&end=9f8ac718f44e280edb1a7b3266f2c26106ec11a0&stat=instructions:u)
(up to 2.4% on `full` builds of `inflate-check`)
[#74040](https://github.com/rust-lang/rust/issues/74040) fix unification of const variables
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=956e06c6c85e918524b67503c4d65c7baf539585&end=e0bf356f9e5f6a8cca1eb656e900ffba79340fa1&stat=instructions:u)
(up to 3.3% on `incr-full` builds of `coercions-debug`)
### Improvements
[#76656](https://github.com/rust-lang/rust/issues/76656) Don't query stability data when `staged_api` is off
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=f9a322a6fdd1e12fbe30441feaa4402e23efe303&end=1eb00abf35b9bb59825edf81d05c2fa2f17cefca&stat=instructions:u)
(up to -1.5% on `incr-unchanged` builds of `many-assoc-items-check`)
[#76311](https://github.com/rust-lang/rust/issues/76311) Split `core::slice` to smaller mods
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=90b1f5ae59291dd69d72fad41a22277df19dc953&end=4c1966f97e192d6282be935baa163fb58f9b8b27&stat=instructions:u)
(up to -1.9% on `full` builds of `html5ever-opt`)
- Very odd, since this just split up a file.
[#76880](https://github.com/rust-lang/rust/issues/76880) Update cc crate to 1.0.60 to understand aarch64-apple-darwin with clang
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=8e9d5db8392c44a2e94008168fa3506ecddaa357&end=b3aae050cd7e0c9a9eb6085bd49b02f67dc1396f&stat=instructions:u)
(up to -1.0% on `incr-patched: Compiler new` builds of `regex-opt`)
[#76975](https://github.com/rust-lang/rust/issues/76975) Rollup of 15 pull requests
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=b873fa6d42cf305131d2583d03b84686e5e40f2e&end=81e02708f1f4760244756548981277d5199baa9a&stat=instructions:u)
on exactly `encoding-check` (-2.0% on `incr-full` builds)
[#76680](https://github.com/rust-lang/rust/issues/76680) Make `ensure_sufficient_stack()` non-generic, using cargo-llvm-lines
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=4eff9b0b29a8898c839d46f3c66526710afed68a&end=b01326ab033e41986d4a5c8b96ce4f40f3b38e30&stat=instructions:u)
(up to -3.2% on `incr-full` builds of `coercions-debug`)
### Mixed
[#76244](https://github.com/rust-lang/rust/issues/76244) Removing the `def_id` field from hot `ParamEnv` to make it smaller
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a055c5a1bd95e029e9b31891db63b6dc8258b472&end=7402a394471a6738a40fea7d4f1891666e5a80c5&stat=instructions:u)
(up to 3.3% on `full` builds of `unicode_normalization-check`)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=a055c5a1bd95e029e9b31891db63b6dc8258b472&end=7402a394471a6738a40fea7d4f1891666e5a80c5&stat=instructions:u)
(up to -1.8% on `full` builds of `ctfe-stress-4-check`)
- A fix has been published as [#76913](https://github.com/rust-lang/rust/pull/76913).
[#72412](https://github.com/rust-lang/rust/issues/72412) Issue 72408 nested closures exponential
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=2c69266c0697b0c0b34abea62cba1a1d3c59c90c&end=fdc3405c20122fd0f077f5a77addabc873f20e4c&stat=instructions:u)
(up to -99.9% on `incr-unchanged` builds of `deeply-nested-closures-opt`)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=2c69266c0697b0c0b34abea62cba1a1d3c59c90c&end=fdc3405c20122fd0f077f5a77addabc873f20e4c&stat=instructions:u)
(up to 1.5% on `full` builds of `coercions-check`)
- Fixes a pathological case, but slows down normal builds slightly.
- Might be worth investigating to see if we can do better, although the author seems to have done a pretty thorough job.
[#74949](https://github.com/rust-lang/rust/issues/74949) Validate constants during `const_eval_raw`
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=10b3595ba6a4c658c9dea105488fc562c815e434&end=5e449b9adff463455743291b0c1f76feec092992&stat=instructions:u)
(up to 515.8% on `incr-unchanged` builds of `ctfe-stress-4-check`)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=10b3595ba6a4c658c9dea105488fc562c815e434&end=5e449b9adff463455743291b0c1f76feec092992&stat=instructions:u)
(up to -2.7% on `incr-patched: add static arr item` builds of `coercions-check`)
- A fix has been published as [#77006](https://github.com/rust-lang/rust/pull/77006).
[#75119](https://github.com/rust-lang/rust/issues/75119) New MIR optimization pass to reduce branches on match of tuples of enums
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=81e02708f1f4760244756548981277d5199baa9a&end=2e0edc0f28c5647141bedba02e7a222d3a5dc9c3&stat=instructions:u)
(up to -1.6% on `full` builds of `style-servo-opt`)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=81e02708f1f4760244756548981277d5199baa9a&end=2e0edc0f28c5647141bedba02e7a222d3a5dc9c3&stat=instructions:u)
(up to 1.3% on `full` builds of `wf-projection-stress-65510-check`)
- Seems to have been a regression overall. If there's no improvment in the generated code, we should disable this.
### Nags requiring follow up
- [#75119](https://github.com/rust-lang/rust/issues/75119)
- [#76575](https://github.com/rust-lang/rust/issues/76575)
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- "Widen TypeId from 64 bits to 128." [rust#75923](https://github.com/rust-lang/rust/pull/75923)
- Opened by @**eddyb**
- @**simulacrum** [nominated it to talk about @**eddyb**'s concern wrt to typeid stabilization; it might be a T-lang question too](https://github.com/rust-lang/rust/pull/75923#issuecomment-684051064).
- @**eddyb** @**RalfJ** and `KodrAus` [have agreed on reverting `TypeId` stabilization](https://github.com/rust-lang/rust/pull/75923#issuecomment-696696433) before it hits stable, [until we get a chance to settle this entirely](https://github.com/rust-lang/rust/pull/75923#issuecomment-696604147).
- "Set up CI for aarch64-apple-darwin" [rust#75991](https://github.com/rust-lang/rust/pull/75991)
- Nominated by @**Pietro Albini** for compiler approval
- This PR is promoting the aarch64-apple-darwin target from Tier 3 to a Tier 2 development platform
- "Macro hygiene change breaks Firefox builds." [rust#76480](https://github.com/rust-lang/rust/issues/76480)
- Breaking change
- Nominated for discussion about how can we do better here
- cc @**Esteban Küber** @**Aaron Hill**
- "Build hang on Linux with nightly and beta toolchains" [rust#76980](https://github.com/rust-lang/rust/issues/76980)
- Unassigned
- It's also an unassigned beta regression
- Build hangs on beta
- @**Eric Huss** bisected it to [rust#73526](https://github.com/rust-lang/rust/pull/73526)
- @**cuviper** [is not aware of any LLVM 11 issue like that ](https://github.com/rust-lang/rust/issues/76980#issuecomment-695805807)
- Assigned `P-high` and requested an MCVE, we probably need to get more context about this issue
[libs-impl](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3Alibs-impl)
- No nominated issues for `libs-impl` this time.