--- tags: weekly, rustc type: docs --- # T-compiler Meeting Agenda 2022-03-31 [Tracking Issue](https://github.com/rust-lang/rust/issues/54818) ## Announcements - Tomorrow <time:2022-04-01T12:00:00-04:00> (*non-standard time*) meeting robust incr-comp [calendar link](https://calendar.google.com/calendar/event?eid=NDdvYzM1aGlwMDh0azJkMjJmNjE1djkyOGggNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&ctz=GMT+01:00) - [compiler-team#490](https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Frust-lang%2Fcompiler-team%2Fissues%2F490&sa=D&ust=1648138437659000&usg=AOvVaw2CMvohRMydwg3ZcX_Fscxb) - Tomorrow <time:2022-04-01T09:00:00-04:00> Types Team: Planning/Deep-Dive meeting [calendar link](https://calendar.google.com/calendar/event?eid=M3JsYmdkN2F0cjdtYXE0Z2ljYzM4Nm42NTRfMjAyMjA0MDFUMTMwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn&ctz=GMT+02:00) - :loudspeaker: Next Thursday, April 7th, New Rust Release: 1.60 stable is out :loudspeaker: ([blog post](https://github.com/rust-lang/blog.rust-lang.org/blob/5f778be1d744787933faa9bf44d9d97d06b78c04/posts/2022-04-07-Rust-1.60.0.md)) - Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @_**pnkfelix** or @_**Wesley Wiser** so we can pass it along). ## MCPs/FCPs - New MCPs (take a look, see if you like them!) - "Add `yeet` experimentally" [compiler-team#501](https://github.com/rust-lang/compiler-team/issues/501) - Old MCPs (not seconded, take a look) - "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 review activity: 9 months ago) - "Make `-Z binary-dep-depinfo` the default behavior" [compiler-team#464](https://github.com/rust-lang/compiler-team/issues/464) (last review activity: 6 months ago) - "Tier 3 target proposal: riscv64gc-linux-android (Android target for `riscv64gc`)" [compiler-team#472](https://github.com/rust-lang/compiler-team/issues/472) (last review activity: 3 months ago) - "`-Dwarnings` to cover all warnings" [compiler-team#473](https://github.com/rust-lang/compiler-team/issues/473) (last review activity: 3 months ago) - "Build-time execution sandboxing" [compiler-team#475](https://github.com/rust-lang/compiler-team/issues/475) (last review activity: 3 months ago) - "Dealing with type/const ambiguities" [compiler-team#480](https://github.com/rust-lang/compiler-team/issues/480) (last review activity: 2 months ago) - "Removing codegen logic for `nvptx-nvidia-cuda` (32-bit target)" [compiler-team#496](https://github.com/rust-lang/compiler-team/issues/496) (last review activity: about 13 days ago) - Pending FCP requests (check your boxes!) - "Tracking issue for Consistent no-prelude attribute (RFC 501)" [rust#20561](https://github.com/rust-lang/rust/issues/20561) - "Increase the minimum linux-gnu versions" [rust#95026](https://github.com/rust-lang/rust/pull/95026) - Things in FCP (make sure you're good with it) - "Promote `x86_64-unknown-none` to Tier 2" [compiler-team#499](https://github.com/rust-lang/compiler-team/issues/499) - "Add support for MIR opt unit tests via a new `-Z` flag" [compiler-team#502](https://github.com/rust-lang/compiler-team/issues/502) - Accepted MCPs - "Implement `Clone` for generators" [compiler-team#494](https://github.com/rust-lang/compiler-team/issues/494) - Finalized FCPs (disposition merge) - "Stabilize native library modifier syntax and the `whole-archive` modifier specifically" [rust#93901](https://github.com/rust-lang/rust/pull/93901) - "Lazy type-alias-impl-trait take two" [rust#94081](https://github.com/rust-lang/rust/pull/94081) ### WG checkins - @_*WG-traits* (generic work of the WG) by @**nikomatsakis** and @**Jack Huey** ([previous checkin](https://hackmd.io/fS5Qiyo3Ta6F8S7QNxg5xA#WG-checkins)): > Checkin text - @_*wg-incr-comp* by @**pnkfelix** @**Wesley Wiser** ([previous checkin](https://hackmd.io/MDQRCqHWSCG1HuHgHC847g#WG-checkins)): > Checkin text ## Backport nominations [T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler) - :beta: "Fix ice when error reporting recursion errors" [rust#94391](https://github.com/rust-lang/rust/pull/94391) - Fixes [#90319](https://github.com/rust-lang/rust/issues/90319), [#92148](https://github.com/rust-lang/rust/issues/92148) and [#93955](https://github.com/rust-lang/rust/issues/93955) - @**Esteban Küber** reviewed and nominated for beta-backport (regression is affecting a couple of past stable releases) - No stable nominations for `T-compiler` this time. [T-rustdoc beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-rustdoc) / [T-rustdoc stable](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) - No new PRs waiting on T-compiler ## Oldest PRs waiting for review [T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler+-label%3AT-lang+-label%3AT-infra+-label%3AT-release+-label%3AT-libs+-label%3AT-libs-api) - "Support #[global_allocator] without the allocator shim" [rust#86844](https://github.com/rust-lang/rust/pull/86844) (last review activity: 5 months ago) - cc: @**pnkfelix** - "Specialize infinite-type "insert some indirection" suggestion for Option" [rust#91416](https://github.com/rust-lang/rust/pull/91416) (last review activity: about 41 days ago) - cc: @**Esteban Küber** - "[perf only] Test Rust with opaque pointers" [rust#94214](https://github.com/rust-lang/rust/pull/94214) (last review activity: about 35 days ago) - cc: @**eddyb** - "Remove all json handling from rustc_serialize" [rust#85993](https://github.com/rust-lang/rust/pull/85993) (last review activity: about 33 days ago) - assigned to @**Aaron Hill** - (a few comments also from various people) - "Add `special_module_name` lint" [rust#94467](https://github.com/rust-lang/rust/pull/94467) (last review activity: about 29 days ago) - highfive bot assigned to @**Matthew Jasper** - probably needs a reviewer - "Create 2024 edition" [rust#94461](https://github.com/rust-lang/rust/pull/94461) (last review activity: about 29 days ago) - @**mw** assigned to @**pnkfelix** :-) - "create `-Z force-allocator-shim` codegen option" [rust#94389](https://github.com/rust-lang/rust/pull/94389) (last review activity: about 29 days ago) - @**pnkfelix** self-assigned to figure out to push #94389 or [#86844](https://github.com/rust-lang/rust/pull/86844) forward - "Handle generic bounds in a uniform way in HIR" [rust#93803](https://github.com/rust-lang/rust/pull/93803) (last review activity: about 37 days ago) - cc: @**Esteban Küber** - "Also cache the stable hash of interned Predicates" [rust#94487](https://github.com/rust-lang/rust/pull/94487) (last review activity: about 29 days ago) - @**oli** is it waiting for review? do you need a reviewer? - @**mw** added self to cc ([see comment](https://github.com/rust-lang/rust/pull/94487#issuecomment-1058152662=)) ## Issues of Note ### Short Summary - [1 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) - [59 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [45 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) - [0 P-critical, 2 P-high, 1 P-medium, 2 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) - [0 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) - [1 P-critical, 38 P-high, 82 P-medium, 10 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) - No new `P-critical` issues for `T-compiler` 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. ### 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-release+-label%3AT-rustdoc+-label%3AT-core) - "No more auto-unrolling starting with LLVM 14" [rust#94847](https://github.com/rust-lang/rust/issues/94847) [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-release+-label%3AT-rustdoc+-label%3AT-core) - No unassigned `P-high` nightly regressions this time. ## Performance logs > [triage logs 2022-03-30](https://github.com/rust-lang/rustc-perf/blob/master/triage/2022-03-30.md) A mixed week: some minor regressions, but things overall improved for instruction counts. Max RSS has gone up slightly over the past [month](https://perf.rust-lang.org/?start=2022-03-01&end=2022-03-30&kind=percentfromfirst&stat=max-rss), on the order of 0.5% regression according to benchmark summary. pnkfelix is following up on that with rustc-perf team on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/max-rss.20over.202022-03/near/277194155) Triage done by **@pnkfelix**. Revision range: [3ea44938e21f0de8ae7d4f6399a8a30f97867c70..3e7514670db841a7f0d7656f3b13b1c8b2c11599](https://perf.rust-lang.org/?start=3ea44938e21f0de8ae7d4f6399a8a30f97867c70&end=3e7514670db841a7f0d7656f3b13b1c8b2c11599&absolute=false&stat=instructions%3Au) 4 Regressions, 5 Improvements, 4 Mixed; 3 of them in rollups 30 Untriaged Pull Requests 63 comparisons made in total #### Regressions Rollup of 5 pull requests [#95250](https://github.com/rust-lang/rust/pull/95250) - Arithmetic mean of relevant regressions: 2.2% - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=9f4dc0b4db892271cd0dada6e072775b5b5d6b1e&end=37b55c8a0cafdb60b9168da34f904acc70157df8&stat=instructions:u): 11.1% on `full` builds of `cargo-0.60.0 doc` - [Already triaged](https://github.com/rust-lang/rust/pull/95250#issuecomment-1077821698) by oli-obk. - it is solely in rustdoc, and oli-obk has a plan to address it in the long term. Properly track `ImplObligations` [#91030](https://github.com/rust-lang/rust/pull/91030) - Arithmetic mean of relevant regressions: 1.9% - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=600a80dedf71ce02e778e59f4884866c3030c819&end=d2df372bca13bb60979c909660e69f2451630e81&stat=instructions:u): 3.8% on `full` builds of `projection-caching check` - [triaged](https://github.com/rust-lang/rust/pull/91030#issuecomment-1083360210); this was anticipated. - The only primary regression was to diesel doc, and the regressions are justified by the improvement to the diagnostics. Separate const prop lints from optimizations [#94934](https://github.com/rust-lang/rust/pull/94934) - Arithmetic mean of relevant regressions: 1.2% - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=4b133a7e27c32e822e9ff774e4436f184f5a9752&end=63b8f01bb5ca277e7df8d7efe094ed4244c1790c&stat=instructions:u): 2.1% on `incr-full` builds of `unicode_normalization opt` - [Already triaged](https://github.com/rust-lang/rust/pull/94934#issuecomment-1078950067) by oli-obk. - In short: this was expected, becaused we are doing const-prop twice now. - (The end-goal is stop optimizations from changing diagnostics. This PR is a step towards that goal.) Rollup of 4 pull requests [#95448](https://github.com/rust-lang/rust/pull/95448) - Arithmetic mean of relevant regressions: 1.5% - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=5e1d19d30723c287f049662474021f2b9a9894ce&end=9c06e1ba47e1077725a950e0b5d1870a89c8b536&stat=instructions:u): 2.5% on `incr-patched: io error 6144` builds of `issue-46449 debug` - [triaged](https://github.com/rust-lang/rust/pull/95448#issuecomment-1083461959) - The only primary benchmark impacted by this was `unicode-normalization-0.1.19`, and that only saw a 0.50% regression on incr-patched: println and a 0.36% regression on full build. We can ignore that. - The only secondary benchmark impacted was issue-46449, which is trying to catch regression of quadratic blowup, not minor regressions. #### Improvements - Introduce `TtParser` [#95159](https://github.com/rust-lang/rust/pull/95159) - Overlap inherent impls [#95082](https://github.com/rust-lang/rust/pull/95082) - resolve: Do not build expensive suggestions if they are not actually used [#95255](https://github.com/rust-lang/rust/pull/95255) - Fix perf issue for auto trait selection [#95333](https://github.com/rust-lang/rust/pull/95333) - Remove header field from clean::Function [#95096](https://github.com/rust-lang/rust/pull/95096) #### Mixed Change Thir to lazily create constants [#94876](https://github.com/rust-lang/rust/pull/94876) - Arithmetic mean of relevant regressions: 1.6% - Arithmetic mean of relevant improvements: -1.0% - Arithmetic mean of all relevant changes: -0.3% - Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=d2df372bca13bb60979c909660e69f2451630e81&end=8d8135f003b35c3e109d013b2bed9ee9496da615&stat=instructions:u): -2.8% on `full` builds of `keccak check` - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=d2df372bca13bb60979c909660e69f2451630e81&end=8d8135f003b35c3e109d013b2bed9ee9496da615&stat=instructions:u): 3.5% on `full` builds of `tuple-stress check` - [Triaged](https://github.com/rust-lang/rust/pull/94876#issuecomment-1083486520). - The changes to the primary benchmarks are almost universally green here. - The secondary benchmarks are more of a mixed bag, but I think we can accept a 3.5% regression on tuple-stress given the overall benefits. More macro expansion optimizations [#95259](https://github.com/rust-lang/rust/pull/95259) - Arithmetic mean of relevant improvements: -1.5% - Arithmetic mean of all relevant changes: -1.1% - Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=4ce257ff198d23bdf14e956fbf2fe0fed297201f&end=8a0c55046c7092d9e019dad03729e8d32e38df72&stat=instructions:u): -2.0% on `incr-unchanged` builds of `diesel check` - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=4ce257ff198d23bdf14e956fbf2fe0fed297201f&end=8a0c55046c7092d9e019dad03729e8d32e38df72&stat=instructions:u): 0.4% on `incr-full` builds of `unicode-normalization-0.1.19 opt` - [Already triaged](https://github.com/rust-lang/rust/pull/95259#issuecomment-1079476641) by nnethercote - The perf wins clearly outweigh the losses here. Rollup of 5 pull requests [#95382](https://github.com/rust-lang/rust/pull/95382) - Arithmetic mean of relevant regressions: 2.2% - Arithmetic mean of relevant improvements: -0.4% - Arithmetic mean of all relevant changes: 1.2% - Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=ab0c2e18dceb7140626a158affb983ae81039bd0&end=62523045ec681ee8c2ecb8d395fbcaccf336284b&stat=instructions:u): -0.4% on `incr-unchanged` builds of `deeply-nested-multi check` - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=ab0c2e18dceb7140626a158affb983ae81039bd0&end=62523045ec681ee8c2ecb8d395fbcaccf336284b&stat=instructions:u): 3.2% on `full` builds of `await-call-tree check` - [Left comment](https://github.com/rust-lang/rust/pull/95382#issuecomment-1083505358) - Changes to the primary benchmarks seem like a wash and probably ignorable (0.33% worse for unicode-normalization-0.1.19, 0.33% better for ripgrep-13.0.0). - Re secondary benchmarks: 3% worse for await-call-tree (on six scenarios), which is more concerning. I assume PR #95120 is cause. - Leaving as untriaged. Lazy type-alias-impl-trait take two [#94081](https://github.com/rust-lang/rust/pull/94081) - Arithmetic mean of relevant regressions: 0.5% - Arithmetic mean of relevant improvements: -0.5% - Arithmetic mean of all relevant changes: -0.3% - Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=1446d17b8f4bd3ff8dbfb129a7674165e06f9f4c&end=f132bcf3bdf6d3ff9be7d02e8d0088b99007cd5e&stat=instructions:u): -1.0% on `incr-full` builds of `wg-grammar check` - Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=1446d17b8f4bd3ff8dbfb129a7674165e06f9f4c&end=f132bcf3bdf6d3ff9be7d02e8d0088b99007cd5e&stat=instructions:u): 0.8% on `full` builds of `projection-caching check` - [triaged](https://github.com/rust-lang/rust/pull/94081#issuecomment-1083519743) - The actual performance changes indicate this ended up a win overall, based on the amount of green. #### Nags requiring follow up None ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) - No nominated issues for `T-compiler` this time. [RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated+label%3AT-compiler) - No nominated RFCs for `T-compiler` this time.