owned this note
owned this note
Published
Linked with GitHub
---
tags: weekly, rustc
---
# T-compiler Meeting Agenda 2020-10-22
[Tracking Issue](https://github.com/rust-lang/rust/issues/54818)
## Announcements
- Rust Compiler + Dev Tools Jobs
- Microsoft has a [Senior Software Engineer role](https://careers.microsoft.com/us/en/job/917051/Senior-Software-Engineer): "We are looking for engineers to work on Rust compilers and tools to support the usage of the Rust programming language."
- Facebook is also hiring compiler and library engineers (US only), according to [Nadav Rotem tweet](https://twitter.com/nadavrot/status/1319003839018614784?s=20); (if anyone finds an actual job listing, feel free to share it)
- Tomorrow Friday 23rd at <time:2020-10-23T14:00:00+00:00> we have a [Compiler Team Planning meeting](https://forge.rust-lang.org/compiler/steering-meeting.html)
- New MCPs (take a look, see if you like them!)
- "Add a `NOOP_METHOD_CALL` lint for methods which should never be directly called" [compiler-team#375](https://github.com/rust-lang/compiler-team/issues/375)
- Old MCPs (not seconded, take a look)
- "Decentralize queries" [compiler-team#277](https://github.com/rust-lang/compiler-team/issues/277)
- "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)
- "Add 32-bit and 64-bit stderr/stdout files for ui tests" [compiler-team#365](https://github.com/rust-lang/compiler-team/issues/365)
- Pending FCP requests (check your boxes!)
- "inherit stable annotations in enum variants and field items" [compiler-team#370](https://github.com/rust-lang/compiler-team/issues/370)
- Things in FCP (make sure you're good with it)
- "Accept RFC 2951 "Linking modifiers for native libraries"" [compiler-team#356](https://github.com/rust-lang/compiler-team/issues/356)
- "`ty.kind()` -> `ty.data()`" [compiler-team#359](https://github.com/rust-lang/compiler-team/issues/359)
- "Change type folding to take self by value" [compiler-team#371](https://github.com/rust-lang/compiler-team/issues/371)
- "TypeVisitor: use ops::ControlFlow instead of bool" [compiler-team#374](https://github.com/rust-lang/compiler-team/issues/374)
- "Allow making `RUSTC_BOOTSTRAP` conditional on the crate name" [rust#77802](https://github.com/rust-lang/rust/pull/77802)
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- [T-lang] "resolve: Do not put nonexistent crate `meta` into prelude" [rust#75802](https://github.com/rust-lang/rust/pull/75802)
- [T-lang] "stabilize union with 'ManuallyDrop' fields and 'impl Drop for Union'" [rust#77547](https://github.com/rust-lang/rust/pull/77547)
### WG checkins
@*WG-rustc-dev-guide* checkin by @**Santiago Pastorino** and @**Joshua Nelson**:
>- [75 merged PRs!](https://github.com/rust-lang/rustc-dev-guide/pulls?q=is%3Apr+sort%3Aupdated-desc+updated%3A%3E2020-09-03+)
>- Joshua Nelson is now a co-lead of the rustc-dev-guide working group! [team#449](https://github.com/rust-lang/team/pull/449)
>
>### Authors
>**@1c3t3a**, **@arora-aman**, **@bugadani**, **@caass**, **@camelid**, **@ecstatic-morse**, **@follower**, **@guswynn**, **@JakobDegen**, **@JOE1994**, **@JohnTitor**, **@Julian-Wollersberger**, **@jyn514**, **@LeSeulArtichaut**, **@macdonaldo**, **@mark-i-m**, **@matklad**, **@mautamu**, **@mightyiam**, **@Monadic-Cat**, **@Nadrieril**, **@pickfire**, **@r-52**, **@richkadel**, **@spastorino**, **@Stupremee**
>
>### Major Changes
>
>Some minor changes are omitted for brevity.
>
>#### Contributor-facing changes
>
>- New content
> - Explain stages in terms of the compiler currently running (take N+1) [#857](https://github.com/rust-lang/rustc-dev-guide/pull/857)
> - Explain pattern exhaustiveness checking [#923](https://github.com/rust-lang/rustc-dev-guide/pull/923)
> - Added description of word Scrutinee to the glossary [#921](https://github.com/rust-lang/rustc-dev-guide/pull/921)
> - Add a paragraph about reviewers and review latency in Getting Started chapter [#907](https://github.com/rust-lang/rustc-dev-guide/pull/907)
> - Document the usage of cargo-llvm-lines and -Ztimings. [#905](https://github.com/rust-lang/rustc-dev-guide/pull/905)
> - Add docs for `x.py setup` [#899](https://github.com/rust-lang/rustc-dev-guide/pull/899)
> - Add section on using git [#890](https://github.com/rust-lang/rustc-dev-guide/pull/890)
> - add suggested workflow to setup nightly rustup for rust/ [#883](https://github.com/rust-lang/rustc-dev-guide/pull/883)
> - Describe how to generate graphviz diagrams for dataflow [#882](https://github.com/rust-lang/rustc-dev-guide/pull/882)
> - Add Salsa In More Depth lecture [#879](https://github.com/rust-lang/rustc-dev-guide/pull/879)
> - Document new way to not build LLVM [#878](https://github.com/rust-lang/rustc-dev-guide/pull/878)
> - Add a chapter on useful `@rustbot` commands [#874](https://github.com/rust-lang/rustc-dev-guide/pull/874)
> - Add a chapter on all the identifiers used through `rustc` [#872](https://github.com/rust-lang/rustc-dev-guide/pull/872)
> - Add information about default stages for x.py [#865](https://github.com/rust-lang/rustc-dev-guide/pull/865)
> - Document how to promote a target from cross-compiled to hosted [#860](https://github.com/rust-lang/rustc-dev-guide/pull/860)
> - Add section describing git hook functionality [#848](https://github.com/rust-lang/rustc-dev-guide/pull/848)
> - Document CGU partioning in case of generic and inline functions [#847](https://github.com/rust-lang/rustc-dev-guide/pull/847)
>
>- Improvements and fixes
> - Recommend debug-logging instead of debug [#917](https://github.com/rust--lang/rustc-dev-guide/pull/917)
> - Link to the -Zmir-opt-level proposal [#888](https://github.com/rust-lang/rustc-dev-guide/pull/888)
> - Don't recommend building the compiler for running tests on the standard library [#887](https://github.com/rust-lang/rustc-dev-guide/pull/887)
> - Improve instructions for adding a new test [#881](https://github.com/rust-lang/rustc-dev-guide/pull/881)
> - Improve MIR sections in appendix [#880](https://github.com/rust-lang/rustc-dev-guide/pull/880)
> - Update prerequisites, with an eye towards windows [#863](https://github.com/rust-lang/rustc-dev-guide/pull/863)
> - update docs to refer to the `compiler/` move [#846](https://github.com/rust-lang/rustc-dev-guide/pull/846)
>
>#### Internal changes
>
>- Linkcheck only changed files (except for cron jobs) [#913](https://github.com/rust-lang/rustc-dev-guide/pull/913). This fixes persistent issues with CI spuriously failing.
>- Allow anyone to change the status of a PR [#910](https://github.com/rust-lang/rustc-dev-guide/pull/910)
>
>### Changes in progress
>
>- Add a `check-in.sh` script to automate writing markdown links for weekly check-in [#930](https://github.com/rust-lang/rustc-dev-guide/pull/930)
@*WG-llvm* checkin by @**Nikita Popov** :
>The first parts of the mustprogress attribute have landed (https://reviews.llvm.org/D86233, https://reviews.llvm.org/D85393). This means that forward progress is now opt-in. Once this work is complete, this will resolve current bugs around infinite loops being optimized away. There isn't a patch for that yet, but I dare say the hardest part (convincing people that this is the right thing to do) is done now...
>
>MemorySSA-based DSE has been enabled by default (https://reviews.llvm.org/D87163), which means dead stores are eliminated across based blocks. Expect some compile-time regression... More importantly for rust, I've ported MemCpyOpt to MSSA (https://reviews.llvm.org/D89207), which will allow memcpy's to be eliminated across blocks as well, a long-standing optimization problem. It's not the first attempt to do this, but I'm optimistic :)
>
>Some older changes that I probably have not mentioned before. I've finally managed to make correlated value propagation optimize conditions based on local value ranges (https://reviews.llvm.org/D69686), which will resolve various missing bounds check optimizations where constant operands are involved. There is also a new constraint elimination pass (https://reviews.llvm.org/D84547) which is able to reason about complex implications symbolically. However, it is not enabled by default, and there's no roadmap to enable it at present.
>
>Also been a while ago, but someone took over my work for introducing saturating float to int casts (https://reviews.llvm.org/D54749). There's been some slow progress, and maybe there's a chance that this will land before the heat death of the universe... Rust has worked around this in the meantime, but once/if it lands we can improve codegen.
## Beta-nominations
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler)
- "Tweak `if let` suggestion to be more liberal with suggestion and to not ICE" [rust#77283](https://github.com/rust-lang/rust/pull/77283)
- Opened by @**Esteban Küber**
- Should fix [rust#77218](https://github.com/rust-lang/rust/issues/77218) (`P-high` beta regression) and [rust#77238](https://github.com/rust-lang/rust/issues/77238)
- "Revert "Allow dynamic linking for iOS/tvOS targets."" [rust#77716](https://github.com/rust-lang/rust/pull/77716)
- (has not landed in nightly)
- Opened by `@francesca64`
- Assigned to @**Jonas Schievink**
- This patch reverts [rust#73516](https://github.com/rust-lang/rust/pull/73516) and **disallows** compiling against dynamic libs (Apple does not allow that and your App won't be published)
- Previous patch however **allowed** dynamic linking
- Reverting now the patch breaks code in production (as pointed out by `@aspenluxxxy`, previous patch author)
- @**Jonas Schievink** [suggests as last resort](https://github.com/rust-lang/rust/pull/77716#issuecomment-709364682) to revert the previous patch (although not the ideal solution) since this can now be considered a regression from stable
- `@cutsoy` implements a patch [adding a new parameter to cargo](https://github.com/rust-lang/rust/pull/77716#issuecomment-709410444)
- Issue reporter [suggests](https://github.com/rust-lang/rust/pull/77716#issuecomment-712492125) that the above patch works just fine
- Question: from the T-compiler point of view, anything else that can be done/investigated or the case is closed?
- "Disable MatchBranchSimplification" [rust#78151](https://github.com/rust-lang/rust/pull/78151)
- Opened by `@tmiasko`
- Mentions that this optimization can result in unsoundness, because it introduces additional uses of a place holding the discriminant value without ensuring that it is valid
- Patch found after adding the [-Zvalidate-mir](https://github.com/rust-lang/rust/pull/77369) validation
- "Disable "optimization to avoid load of address" in InstCombine" [rust#78195](https://github.com/rust-lang/rust/pull/78195)
- Opened by `@tmiasko`
- Assigned to @**oli**
- This fixes `P-critical` issue [rust#78192](https://github.com/rust-lang/rust/issues/78192)
[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)
- "Revert "Allow dynamic linking for iOS/tvOS targets."" [rust#77716](https://github.com/rust-lang/rust/pull/77716)
- This was also beta nominated
- "Disable MatchBranchSimplification" [rust#78151](https://github.com/rust-lang/rust/pull/78151)
- This was also beta nominated
[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)
- "Tracking issue for renaming crates inside compiler directory" [rust#76425](https://github.com/rust-lang/rust/issues/76425)
- References this [MCP](https://github.com/rust-lang/compiler-team/issues/336)
- The goal is to have all crates under `./compiler` have a consistent name
- @**nikomatsakis** summarized the discussion in this [HackMD file](https://hackmd.io/1FgS1fZGSOyWrwhDMq98pw)
- cc @**DPC** @**Joshua Nelson** @**Eric Huss** @**mark-i-m** @**Vadim Petrochenkov**
[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
- [6 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+)
- [3 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)
- [48 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+)
- [29 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)
- [2 P-critical, 4 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)
- [2 P-critical, 2 P-high, 4 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, 18 P-high, 63 P-medium, 5 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)
- "Increasingly slow compilation as more levels of `async` are added in Rust 1.46" [rust#75992](https://github.com/rust-lang/rust/issues/75992)
- Opened by @**Nicholas Bishop**
- Unassigned, not easy to reproduce
- [@kellerkindt](https://github.com/rust-lang/rust/issues/75992#issuecomment-683270098) and [@algesten](https://github.com/rust-lang/rust/issues/75992#issuecomment-683274620) did some bisecting
- @**Noah Kennedy** is trying to build a minimal repro
- @**lcnr** suggests instead of reverting important patches a possible way forward could be implementing some caching like in [PR #76928](https://github.com/rust-lang/rust/issues/75992#issuecomment-713100226)
- "Optimisation-caused UB during cross-crate compilation" [rust#76387](https://github.com/rust-lang/rust/issues/76387)
- This one was already discussed
- Assigned to @**Aaron Hill**
- [A different LLVM patch has been accepted](https://reviews.llvm.org/D88529) and will be included in LLVM 12
- The accepted patch is pretty small and self-contained, so we could cherry-pick it if we wanted to
- "[ICE] Encountered errors resolving bounds after type-checking" [rust#77653](https://github.com/rust-lang/rust/issues/77653)
- This one was already discussed
- Nightly regression
- Opened by @**lzutao** to highlight comment from issue above :point_up: [rust#77638](https://github.com/rust-lang/rust/issues/77638#issuecomment-704892157)
- Bisected to commit [08e2d46](https://github.com/rust-lang/rust/commit/08e2d4616613716362b4b49980ff303f2b9ae654)
- [PR by @**Matthew Jasper** that fixes the issue is up and r+ed](https://github.com/rust-lang/rust/pull/77720) but with issues to go through
- "ICE: Projection bound ... was applicable to ... but now is not" [rust#77656](https://github.com/rust-lang/rust/issues/77656)
- This one was already discussed
- Nightly regression that impacts code in a crate
- Bisected to commit [08e2d46](https://github.com/rust-lang/rust/commit/08e2d4616613716362b4b49980ff303f2b9ae654), merged in [rust#73905](https://github.com/rust-lang/rust/pull/73905)
- [PR by @**Matthew Jasper** that fixes the issue is up and r+ed](https://github.com/rust-lang/rust/pull/77720) but with issues to go through
- "InstCombine introduces an incorrect use of a local after its storage has ended" [rust#78192](https://github.com/rust-lang/rust/issues/78192)
- Opened by `tmiasko`
- MIR opt causes unsoundness
- Found by MIR validator PR [rust#77369](https://github.com/rust-lang/rust/pull/77369) & [rust#78147](https://github.com/rust-lang/rust/pull/78147)
- Bugs' origin [rust#76683](https://github.com/rust-lang/rust/pull/76683)
- Already merged PR [rust#78195](https://github.com/rust-lang/rust/pull/78195) to disable problematic parts of InstCombine optimization, waiting for beta backport
[libs-impl](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3Alibs-impl)
- "regression: could not fully normalize type" [rust#78139](https://github.com/rust-lang/rust/issues/78139)
- Opened by @**simulacrum**
- Regression seems to be in PR [rust#70793](https://github.com/rust-lang/rust/pull/70793)
[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?utf8=%E2%9C%93&q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high)
- "ICE: Expected module, found DefId" [rust#75982](https://github.com/rust-lang/rust/issues/75982)
- Reported by @**Daniel Henry-Mantilla|232018**
- Assigned to @**Aaron Hill**
- Issue priority raised to `P-high`: issue reporter [mentions there was a test shadowing the ICE](https://github.com/rust-lang/rust/issues/75982#issuecomment-706100003) behind a compiler error. ICE persists after removing this test.
- "Build hang on Linux with nightly and beta toolchains" [rust#76980](https://github.com/rust-lang/rust/issues/76980)
- Unassigned
- 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)
- A [possible workaround was added](https://github.com/rust-lang/rust/pull/77642) by @**Pietro Albini** but it doesn't seem to be confirmation if works or not.
- @**cuviper** believes the real issue stems in PR [rustc#74163](https://github.com/rust-lang/rust/pull/74163)
- There's a long technical analysis in the [last comment](https://github.com/rust-lang/rust/issues/76980#issuecomment-705800997)
- @**simulacrum** asked `jethrogb` and @**cuviper** if they could open a PR about it
- "ICE on `if let Some() = ...` expression in loop with variable shadowing and missing let keyword" [rust#77218](https://github.com/rust-lang/rust/issues/77218)
- Opened by `zdenek-crha`
- Regression in PR [rust#75931](https://github.com/rust-lang/rust/pull/75931)
[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee)
- "ICE: tuple_fields called on non-tuple: async fn with unknown macro" [rust#77993](https://github.com/rust-lang/rust/issues/77993)
- opened by @**NeoRaider**
- reviewed by @**Vadim Petrochenkov** and @**LeSeulArtichaut**
- This should fix an issue emerged in [#69274](https://github.com/rust-lang/rust/pull/69274) and [#70307](https://github.com/rust-lang/rust/issues/70307)
## Performance logs
A variety of changes, nothing particularly notable from a performance
perspective. [#77792](https://github.com/rust-lang/rust/issues/77792) is an
interesting win on migrating to tracing values rather than the older log
formatting. [#76859](https://github.com/rust-lang/rust/issues/76859) is also
interesting, starting out as a functional fix but appears to have been a
performance win for incremental benchmarks in some cases as well.
[Triage](https://github.com/rust-lang/rustc-perf/tree/master/triage#triage-logs) done by **@simulacrum**.
Revision range: [06a079c43efb062e335e6e6c9dabd3c750619980..22e6b9c68941996daa45786b4145e6196e51f0f4](https://perf.rust-lang.org/?start=06a079c43efb062e335e6e6c9dabd3c750619980&end=22e6b9c68941996daa45786b4145e6196e51f0f4&absolute=false&stat=instructions%3Au)
4 Regressions, 7 Improvements, 0 Mixed
2 of them in rollups
### Regressions
[#77755](https://github.com/rust-lang/rust/issues/77755)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=e8529c79cce76b47b7b61060db36cf8201c688a3&end=2d6eccdb67aef48d0804cb473536b925f61a7f18&stat=instructions:u) (up to 1.3% on `full` builds of `deeply-nested-async-check`)
- [Nag](https://github.com/rust-lang/rust/pull/77755#issuecomment-714086526)
[#77873](https://github.com/rust-lang/rust/issues/77873)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=19e1aac6ea9879c6d10eed7106b3bc883e5bf9a5&end=93deabce03dc10a80244f5da3e3819452744da2a&stat=instructions:u) (up to 2.7% on `full` builds of `wg-grammar-check`)
- Functional change. Regression not significantly major to warrant a revert.
[#78060](https://github.com/rust-lang/rust/issues/78060)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=ffeeb20398bb9a25c1f75599b942f57c85a2140d&end=043eca7f0b34d12e61c44206beca740628647080&stat=instructions:u) (up to 1.2% on `incr-unchanged` builds of `clap-rs-check`)
- Rollup; likely due to BTreeMap or meta-prelude changes. Not worth deep
investigation: regression is minor and interesting changes are likely not
readily changeable.
[#77250](https://github.com/rust-lang/rust/issues/77250)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=19356453cbfb734bc60a1853c10e3095d05e0342&end=22e6b9c68941996daa45786b4145e6196e51f0f4&stat=instructions:u) (up to 3.1% on `incr-unchanged` builds of `packed-simd-check`)
- Functional change that we definitely want, performance regression is not too
significant.
### Improvements
[#76859](https://github.com/rust-lang/rust/issues/76859)
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=06a079c43efb062e335e6e6c9dabd3c750619980&end=c71248b70870960af9993de4f31d3cba9bbce7e8&stat=instructions:u) (up to -58.0% on `incr-patched: Compiler new` builds of `regex-opt`)
- Correctness is the key here, but it seems like our hand-rolled incremental
tracking was (at least on the perf benchmarks) worse anyway.
[#77792](https://github.com/rust-lang/rust/issues/77792)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=8dae8cdcc8fa879cea6a4bbbfa5b32e97be4c306&end=abbdec3be6cfce1175d0dc6737a2999cf43b530d&stat=instructions:u) (up to -1.7% on `incr-unchanged` builds of `deeply-nested-async-opt`)
- Switching to tracing spans and tracing's "values" over string-formatting seems
to have been a improvement here. Definitely an interesting result --
presumably tracing's handling is somehow more visible to LLVM?
[#77796](https://github.com/rust-lang/rust/issues/77796)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=abbdec3be6cfce1175d0dc6737a2999cf43b530d&end=afb4514c099fde6e3102373602bea9e6dacd4f88&stat=instructions:u) (up to -1.4% on `full` builds of `deeply-nested-async-check`)
- Seems like potentially a slight regression on wall times, but ultimately the
change is good on its merits, so no action is taken at this time.
[#77947](https://github.com/rust-lang/rust/issues/77947)
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=b6e2dc6cdece6b498b876bc7e9377ff7d63d93e7&end=9bd740a8f17d75168b683bcfb077b6e450047df5&stat=instructions:u) (up to -7.4% on `incr-unchanged` builds of `cranelift-codegen-debug`)
- Seems to be a mixed result on [wall
times](https://perf.rust-lang.org/compare.html?start=b6e2dc6cdece6b498b876bc7e9377ff7d63d93e7&end=9bd740a8f17d75168b683bcfb077b6e450047df5&stat=wall-time)
though.
[#77373](https://github.com/rust-lang/rust/issues/77373)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=6af9846fcc8797bf97e9fb387385208c2219f3d0&end=ffeeb20398bb9a25c1f75599b942f57c85a2140d&stat=instructions:u) (up to -1.6% on `full` builds of `deeply-nested-async-check`)
- Wall times are less positive, but mostly on incremental. Not deemed a concern.
[#77908](https://github.com/rust-lang/rust/issues/77908)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=cb2462c53f2cc3f140c0f1ea0976261cab968a34&end=f90e6173053f7e6b377d7f75367b511ceee7d9d1&stat=instructions:u) (up to -1.8% on `full` builds of `inflate-check`)
[#78151](https://github.com/rust-lang/rust/issues/78151)
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=9832374f6e378971e1a933362cf9781b121bb845&end=981346fc07dd5ef414c5b1b21999f7604cece006&stat=instructions:u) (up to -7.6% on `incr-patched: println` builds of `regression-31157-opt`)
### Nags requiring follow up
- https://github.com/rust-lang/rust/pull/77755#issuecomment-714086526
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- Confusing type error due to strange inferred type for a closure argument [rustc#41078](https://github.com/rust-lang/rust/issues/41078)
- Longstsanding issue since 2017, has generated many duplicates since then
- Seems to impact more from an usability/ergonomics point of view since there are workarounds, example [this comment](https://github.com/rust-lang/rust/issues/41078#issuecomment-298180037) and this [Stack Overflow](https://stackoverflow.com/questions/58773989) answer
- [First comment](https://github.com/rust-lang/rust/issues/41078#issuecomment-293646723) by @**nikomatsakis**
- More [recent comment](https://github.com/rust-lang/rust/issues/41078#issuecomment-358385901) from @**nikomatsakis**
- [Another explaination](https://github.com/rust-lang/rust/issues/41078#issuecomment-552064766) from @**eddyb**
- nightly from June shows a [slightly different error](https://github.com/rust-lang/rust/issues/41078#issuecomment-649465827)
- "regression: target_feature no longer permitted in some places" [rust#78143](https://github.com/rust-lang/rust/issues/78143)
- Opened by @**simulacrum**
- Should fix an issue caused by PR [rust#71205](https://github.com/rust-lang/rust/pull/71205)
[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.
[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- "Amend RFC2603 to allow mangled identifiers to start with a digit." [rfcs#2705](https://github.com/rust-lang/rfcs/pull/2705)
- Submitted by @**eddyb**
- RFC proposes a new mangling scheme describing what the symbol names generated by the Rust compiler look like
- Suggested by @**pnkfelix** [in this comment](https://github.com/rust-lang/rfcs/pull/2603#discussion_r279670424)
- "RFC: -C export-executable-symbols" [rfcs#2841](https://github.com/rust-lang/rfcs/pull/2841)
- Submitted by `@MaulingMonkey`
- RFC proposes adding the ability to export symbols from executables, not just dylibs, via a new compiler flag `-C export-executable-symbols`
- @**pnkfelix** [has some questions](https://github.com/rust-lang/rfcs/pull/2841#issuecomment-569852146)