--- tags: weekly, rustc --- # T-compiler Meeting Agenda 2021-07-15 [Tracking Issue](https://github.com/rust-lang/rust/issues/54818) ## Announcements - Tomorrow July 16th at 10:00 ET steering meeting to discuss extensions to the review policy for Rust Compiler Pull Requests ([policy](https://github.com/rust-lang/compiler-team/issues/444)) ## MCPs/FCPs - New MCPs (take a look, see if you like them!) - "Non exhaustive reachable patterns lint" [compiler-team#445](https://github.com/rust-lang/compiler-team/issues/445) - Old MCPs (not seconded, take a look) - "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) - "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: about 34 days ago) - "CI should exercise (subset of) tests under --stage 1" [compiler-team#439](https://github.com/rust-lang/compiler-team/issues/439) (last comment: about 13 days ago) - "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) (last comment: about 13 days ago) - "Encode spans relative to the enclosing item" [compiler-team#443](https://github.com/rust-lang/compiler-team/issues/443) (last comment: about 13 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) - "Preserve, clarify, and extend debug information" [rust#83947](https://github.com/rust-lang/rust/pull/83947) - Things in FCP (make sure you're good with it) - No FCP requests this time. - Accepted MCPs - No new accepted proposals this time. - Finalized FCPs (disposition merge) - "Tracking issue for `#![feature(maybe_uninit_extra,const_maybe_uninit_write)]`" [rust#63567](https://github.com/rust-lang/rust/issues/63567) - "Tracking Issue for `array_map`" [rust#75243](https://github.com/rust-lang/rust/issues/75243) - "Stabilize `impl From<[(K, V); N]> for HashMap` (and friends)" [rust#84111](https://github.com/rust-lang/rust/pull/84111) - "Stabilize bindings_after_at" [rust#85305](https://github.com/rust-lang/rust/pull/85305) ### WG checkins @*WG-async-foundations* by @**nikomatsakis** and @**tmandry** : > Checkin text @*WG-traits* by @**nikomatsakis** and @**Jack Huey** > We recently (last week) had an organizational meeting and reviewed various initiatives/projects that WG-traits is working on. These include: GATs, TAIT, rustc_type_ir, trait upcasting, salsa, Chalk, and fixing trait-related incremental bugs. > We decided to no longer have a single weekly meeting, in favor of more targeted "1:1" meetings (as needed for each initiative). We will still be having a steering/organizational meeting once a month. We haven't decided if that'll take the same timeslot as the weekly meeting or change. > Updates of individual initiatives: > **GATs** > We realized that in [#85499] (normalization under binders), we run into problems when we want to project but can't yet (i.e. `<T as Trait>::Foo<'a>`) and the associated type will *eventually* contain a bound var. So, for now, the plan is to fall back to no normalization when we don't have enough information to project. This still fixes the ICEs in [#62529], but results in some errors where we want to pass. Also split out [#86993] as a more minimal GATs-only change (which can be landed before, or skipped). > **TAIT** > We had a meeting and found that the implementation is still a bit wrong. There's a bit more work to do before stabilization of `min_type_alias_impl_trait`, including fixing a number of issues. > **rustc_type_ir** > There is an open PR [#86435] to begin moving major types (like `TyKind`) into `rustc_type_ir` and out of `rustc_middle`. Blocked on some lifetime variance (probably) issues that need to be looked into. > **trait upcasting** > There is an open PR [#86461] to refactor the vtable format and a bigger PR [#86264] that is being split out into smaller PRs. > **salsa, Chalk** > [chalk#708] got merged, which reworks the recursive solver to be prepare to use salsa for fixed-point iteration. > **incremental ICEs trait work** > There are [3 approaches](https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/subobligations.20and.20ICEs.20.2385868/near/245066992) open to solve the `evaluate_obligation` incremental issue, but each have a moderate perf impact. They need to be reviewed to pick the best solution. [#62529]: https://github.com/rust-lang/rust/issues/62529 [#85499]: https://github.com/rust-lang/rust/pull/85499 [#86264]: https://github.com/rust-lang/rust/pull/86264 [#86435]: https://github.com/rust-lang/rust/pull/86435 [#86461]: https://github.com/rust-lang/rust/pull/86461 [#86993]: https://github.com/rust-lang/rust/pull/86993 [chalk#708]: https://github.com/rust-lang/chalk/pull/708 ## 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) - :beta: "Don't use gc-sections with profile-generate." [rust#87004](https://github.com/rust-lang/rust/pull/87004) - opened by @**Jamie Cunliffe** - nomination proposed by @**simulacrum** as this should fix [rust#78226](https://github.com/rust-lang/rust/issues/78226), preferably to be shipped in 1.54 a `P-critical` regression on AArch64 target - Some PGO tests are failing on Windows (see [comment](https://github.com/rust-lang/rust/pull/87004#issuecomment-879157185)) - 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 backport 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) - "Encode spans relative to the enclosing item" [rust#84373](https://github.com/rust-lang/rust/pull/84373) - opened by @**cjgillot** - @**Vadim Petrochenkov** called on team review as it may be interesting to be merged to move forward [rust#35148](https://github.com/rust-lang/rust/issues/35148#issuecomment-879839839) - "Wrap libraries in linker groups, allowing backwards/circular references" [rust#85805](https://github.com/rust-lang/rust/pull/85805) - opened by @**Josh Triplett** - reviewed by @**bjorn3** - @**Vadim Petrochenkov** self-assigned for review, expressed idea to reconsider this PR [in 6-12 months](https://github.com/rust-lang/rust/pull/85805#issuecomment-868825690) ## Issues of Note ### Short Summary - [4 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) - [3 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) - [80 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [54 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, 45 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 - discussed [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-07-08.20.2354818/near/245320262) - @**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) - @**simulacrum**has beta-nominated [rust#87004](https://github.com/rust-lang/rust/pull/87004) to fix this - "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-07-08.20.2354818/near/245321885) - general feeling is to re-enable incr-comp again in 1.54 - @**Aaron Hill** is working on some performance improvements to handling of projection predicates - @**nagisa** reported that errors are looking useful enough [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-07-13](https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-07-13.md) Mostly quiet week; improvements outweighed regressions. Triage done by **@simulacrum**. Revision range: [9a27044f42ace9eb652781b53f598e25d4e7e918..5aff6dd07a562a2cba3c57fc3460a72acb6bef46](https://perf.rust-lang.org/?start=9a27044f42ace9eb652781b53f598e25d4e7e918&end=5aff6dd07a562a2cba3c57fc3460a72acb6bef46&absolute=false&stat=instructions%3Au) 1 Regressions, 4 Improvements, 0 Mixed; 0 of them in rollups #### Regressions Support forwarding caller location through trait object method call [#81360](https://github.com/rust-lang/rust/issues/81360) - Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a84d1b21aea9863f0fc5f436b4982d145dade646&end=3982eb35cabe3a99194d768d34a92347967c3fa2&stat=instructions:u) (up to 1.5% on `incr-full` builds of `unused-warnings-check`) - Largely due to increased number of calls to the newly-made query should_inherit_track_caller. Mostly higher regressions on smaller benchmarks. #### Improvements - Reland "Merge CrateDisambiguator into StableCrateId" [#86143](https://github.com/rust-lang/rust/issues/86143) - Stop generating `alloca`s & `memcmp` for simple short array equality [#85828](https://github.com/rust-lang/rust/issues/85828) - Add support for raw-dylib with stdcall, fastcall functions [#86419](https://github.com/rust-lang/rust/issues/86419) - Use clang 12.0.1 on dist-x86_64/i686-linux [#87019](https://github.com/rust-lang/rust/issues/87019) #### Nags requiring follow up - There are a number of [untriaged regressions](https://github.com/rust-lang/rust/issues?q=is%3Amerged+label%3Aperf-regression+-label%3Aperf-regression-triaged); as of this writing: - Include terminators in instance size estimate [#86777](https://github.com/rust-lang/rust/issues/86777) - Rollup of 8 pull requests [#86588](https://github.com/rust-lang/rust/issues/86588) - Change entry point to 🛡️ against 💥 💥-payloads [#86034](https://github.com/rust-lang/rust/issues/86034) - Inline Iterator as IntoIterator. [#84560](https://github.com/rust-lang/rust/issues/84560) ## Nominated Issues T-rustdoc - Generate links to definition in rustdoc source code pages [#84176](https://github.com/rust-lang/rust/pull/84176) - Authored by @**GuillaumeGomez** - approved by T-rustdoc, reviewed by @**Joshua Nelson** - [mentioned last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-07-08.20.2354818/near/245326203) - needs a final look by T-compiler for merge (@**GuillaumeGomez** can't merge own PR) [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) - "`match` an `std::cmp::Ordering` generates less optimized code in nightly" [rust#86511](https://github.com/rust-lang/rust/issues/86511) - comment mentions these issues [#86391](https://github.com/rust-lang/rust/issues/86391) and [#86354](https://github.com/rust-lang/rust/issues/86354) - issue nominated for help in finding someone giving some context for an accurate priority to track the issue - "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) - issue nominated as FIY for T-compiler. Can this be tracked in perf? [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.