--- tags: weekly, rustc type: docs --- # T-compiler Meeting Agenda 2023-06-22 ## Announcements - [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA2MjZUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-26T10:00:00-04:00> - 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). ### Other WG meetings ([calendar link](https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com)) - [wg-async: Open discussion](https://www.google.com/calendar/event?eid=N211N3RrYzVqcnVvNnBycGFrcW9mcjNocTNfMjAyMzA2MjJUMTYwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-22T12:00:00-04:00> - [[Types] Rotating new solver / formality / polonius deep dive](https://www.google.com/calendar/event?eid=N29vMXZqbGZ1MDIxbzllMDI3dGhocWhhZmNfMjAyMzA2MjZUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-26T11:00:00-04:00> ## MCPs/FCPs - New MCPs (take a look, see if you like them!) - No new proposals this time. - Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed)) - None at this time - Old MCPs (not seconded, take a look) - "2024: Decrease debuginfo generated by `-Cdebuginfo=1`" [compiler-team#613](https://github.com/rust-lang/compiler-team/issues/613) (last review activity: 2 months ago) - "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: 2 months ago) - "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) (last review activity: 2 months ago) - "Add support for Zephyr OS" [compiler-team#629](https://github.com/rust-lang/compiler-team/issues/629) (last review activity: about 0 days ago) - "Consistently use "region" terminology in later stages of the compiler" [compiler-team#634](https://github.com/rust-lang/compiler-team/issues/634) (last review activity: about 27 days ago) - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) (last review activity: about 27 days ago) - "Simplify and improve explicitness of the check-cfg syntax" [compiler-team#636](https://github.com/rust-lang/compiler-team/issues/636) (last review activity: about 8 days ago) - "[MCP] proposing a macros working group" [compiler-team#637](https://github.com/rust-lang/compiler-team/issues/637) (last review activity: about 6 days ago) - Pending FCP requests (check your boxes!) - No pending FCP requests this time. - Things in FCP (make sure you're good with it) - "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610) - "Runtime checks for occupied niches" [compiler-team#624](https://github.com/rust-lang/compiler-team/issues/624) - "Add a blanket flag to enable/disable codegen UB checks" [compiler-team#625](https://github.com/rust-lang/compiler-team/issues/625) - "Add `mips64r6` and `mips32r6` options to `target_arch`" [compiler-team#632](https://github.com/rust-lang/compiler-team/issues/632) - "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633) - "Assign maintainers for MIPS R6 targets" [compiler-team#638](https://github.com/rust-lang/compiler-team/issues/638) - "Use `FieldIdx` all the way down" [compiler-team#639](https://github.com/rust-lang/compiler-team/issues/639) - Accepted MCPs - No new accepted proposals this time. - Finalized FCPs (disposition merge) - "resolve: Remove artificial import ambiguity errors" [rust#112086](https://github.com/rust-lang/rust/pull/112086) ### WG checkins - Generic Associated Types initiative by @**Jack Huey** ([previous checkin](https://hackmd.io/IvuR59rBR2Ka9opecmfaJQ#WG-checkins)): > Nothing new - @_*WG-diagnostics* by @**Esteban Küber** and @**oli** ([previous checkin](https://hackmd.io/4CKNflTQQIKOxk7jiuh7NQ#WG-checkins)): > nothing to report ## 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: [1.71.0] "Disable alignment checks on i686-pc-windows-msvc" [rust#112684](https://github.com/rust-lang/rust/pull/112684) - first step to fix an unsoundness (#112480) (MSVC and rustc disagreement on minimum stack alignment on `i686-pc-windows-msvc`) - discussed last week ([Zulip link](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-06-15/near/366526208)) - also nominated for stable backport <!-- /poll Approve beta backport of #112684? approve decline don't know --> - :beta: [1.71.0] "Fix linker failures when #[global_allocator] is used in a dependency" [rust#112794](https://github.com/rust-lang/rust/pull/112794) - fixes P-high unsoundness #112715 <!-- /poll Approve beta backport of #112794? approve decline don't know --> - :stable: [1.70.1] "Disable alignment checks on i686-pc-windows-msvc" [rust#112684](https://github.com/rust-lang/rust/pull/112684) <!-- /poll Approve stable backport of #112684? approve approve but does not justify new dot release decline don't know --> [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 beta nominations for `T-rustdoc` this time. - No stable nominations for `T-rustdoc` this time. :back: / :shrug: / :hand: ## Issues of Note ### Short Summary - [0 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) - [65 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [32 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) - [1 P-critical, 1 P-high, 0 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, 0 P-high, 1 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) - [0 P-critical, 36 P-high, 100 P-medium, 20 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?q=is%3Aopen+label%3AP-critical+label%3AT-compiler) - No `P-critical` issues for `T-compiler` at this time. [T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) - No `P-critical` issues for `T-types` at this time. [T-rustdoc](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-rustdoc) - No `P-critical` issues for `T-rustdoc` at 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-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) - "const-propagated `arithmetic_overflow` in unreachable code" [rust#109731](https://github.com/rust-lang/rust/issues/109731) - "based on further discussion in today's triage meeting and follow-up ... we're going to let this ride the trains" ([comment](https://github.com/rust-lang/rust/issues/109731#issuecomment-1553521897)) - It's now on stable, so close it? [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-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) - No unassigned `P-high` nightly regressions this time. ## Performance logs > [triage logs for 2023-06-20](https://github.com/rust-lang/rustc-perf/blob/d9c55fb1800a1a32a73b8f1ff7e97b38047a7fc7/triage/2023-06-20.md) Fairly positive week with very few regressions and some decent (albeit incremental) improvements. The most widespread gains came from some standard library improvements which are not a particularly common cause of large improvements in compiler performance. Overall a large chunk of the perf test suite showed an average of 0.6% improvement. Triage done by **@rylev**. Revision range: [4bd4e2e..b9d608c](https://perf.rust-lang.org/?start=4bd4e2ea824f4f458cae8917047ebb6b88853fe6&end=b9d608c979ad3c0700f9f0237a8c12feb0ba44fb&absolute=false&stat=instructions%3Au) **Summary**: | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:---------------:|:-----:| | Regressions (primary) | 1.4% | [0.5%, 3.6%] | 16 | | Regressions (secondary) | 1.0% | [0.2%, 3.5%] | 29 | | Improvements (primary) | -0.8% | [-7.8%, -0.2%] | 157 | | Improvements (secondary) | -2.9% | [-48.3%, -0.3%] | 84 | | All (primary) | -0.6% | [-7.8%, 3.6%] | 173 | 3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups 51 artifact comparisons made in total #### Regressions Rollup of 7 pull requests [#112625](https://github.com/rust-lang/rust/pull/112625) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0b475c705f36fb3b0a63994b92f2bbd2f5865b07&end=8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.4%] | 4 | | Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.3% | [0.2%, 0.4%] | 4 | - Seems like this was a blip in the bitmaps test which corrected itself in the next run. Add `AliasKind::Weak` for type aliases. [#108860](https://github.com/rust-lang/rust/pull/108860) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=670a0edaa9d80683df8db81554890710e79f8024&end=0cc541e4b2eb957e71490cf44df1ac09f6d18132&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.5%] | 8 | | Regressions (secondary) | 0.4% | [0.2%, 0.8%] | 7 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.3% | [0.2%, 0.5%] | 8 | - Poked author and reviewer for thoughts on small regressions CI: merge `mingw` test CI jobs [#112645](https://github.com/rust-lang/rust/pull/112645) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=939786223f2d36b1af62e27e9a7a54bae6e30f3f&end=2d0aa57684e10f7b3d3fe740ee18d431181583ad&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.8% | [0.7%, 0.8%] | 3 | | Regressions (secondary) | 0.7% | [0.6%, 0.7%] | 2 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.8% | [0.7%, 0.8%] | 3 | - Noise as Linux was impacted #### Improvements Introduce a minimum CGU size in non-incremental builds. [#112448](https://github.com/rust-lang/rust/pull/112448) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6330daade9766bbf896495898c2347dc3be6da17&end=fa8762b7b6c2b75d6c83fb011ee8fa4874168829&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:---------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -2.1% | [-7.8%, -0.3%] | 19 | | Improvements (secondary) | -8.5% | [-45.9%, -0.4%] | 22 | | All (primary) | -2.1% | [-7.8%, -0.3%] | 19 | Don't drain-on-drop in DrainFilter impls of various collections. [#104455](https://github.com/rust-lang/rust/pull/104455) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220&end=6ee4265ca6a7f037237974eeb66e8303282c6a4c&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.5% | [0.2%, 1.2%] | 3 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.5% | [-1.8%, -0.1%] | 35 | | Improvements (secondary) | -0.5% | [-1.1%, -0.2%] | 14 | | All (primary) | -0.4% | [-1.8%, 1.2%] | 38 | optimize slice::Iter::fold [#106343](https://github.com/rust-lang/rust/pull/106343) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5a65be815211a059b08ee3b786583308377372fa&end=4996b56ba9647d149265d03dcbd9ab837af3a1bb&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.7% | [0.4%, 1.1%] | 5 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.2% | [-0.4%, -0.2%] | 87 | | Improvements (secondary) | -0.3% | [-1.2%, -0.1%] | 24 | | All (primary) | -0.2% | [-0.4%, 1.1%] | 92 | Rollup of 7 pull requests [#112716](https://github.com/rust-lang/rust/pull/112716) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6bba061467f7c2cab04b262b95eb67bf89265587&end=670a0edaa9d80683df8db81554890710e79f8024&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 2 | | Improvements (secondary) | -0.4% | [-0.4%, -0.2%] | 4 | | All (primary) | -0.4% | [-0.4%, -0.4%] | 2 | Rollup of 5 pull requests [#112755](https://github.com/rust-lang/rust/pull/112755) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0c2c243342ec2a2427f0624fac5ac59f0ee6fbcd&end=76fb0e38087cb8fcc6de5fe2ce347e939dfdb0bd&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.8% | [-1.8%, -0.2%] | 16 | | Improvements (secondary) | - | - | 0 | | All (primary) | -0.8% | [-1.8%, -0.2%] | 16 | Rollup of 6 pull requests [#112774](https://github.com/rust-lang/rust/pull/112774) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2d0aa57684e10f7b3d3fe740ee18d431181583ad&end=f217411bacbe943ead9dfca93a91dff0753c2a96&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.8% | [-0.8%, -0.7%] | 3 | | Improvements (secondary) | -0.7% | [-0.7%, -0.7%] | 2 | | All (primary) | -0.8% | [-0.8%, -0.7%] | 3 | new solver proof tree generation [#112351](https://github.com/rust-lang/rust/pull/112351) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3c9e0705ba0c1c845fe7cdbd0bdf4a914f49cc8e&end=18a6d911caba59605eb03db1452848a85d2e5879&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.5% | [-0.8%, -0.2%] | 9 | | Improvements (secondary) | -1.2% | [-1.6%, -0.5%] | 8 | | All (primary) | -0.5% | [-0.8%, -0.2%] | 9 | #### Mixed Add support for targets without unwinding in `mir-opt`, and improve `--bless` for it [#112418](https://github.com/rust-lang/rust/pull/112418) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7b0eac438ace0ba305b4633328b00474fbbf5120&end=afa9fef70904bee316d5a73275397d7c4e7c8c4b&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.3%] | 3 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -1.3% | [-1.3%, -1.3%] | 1 | | All (primary) | 0.3% | [0.2%, 0.3%] | 3 | - Noise returning to a steady state Ignore the always part of #[inline(always)] in MIR inlining [#112294](https://github.com/rust-lang/rust/pull/112294) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6a94e87a54ecf2df307c65af2dbc2effb3a525b8&end=6bba061467f7c2cab04b262b95eb67bf89265587&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 1.7% | [1.2%, 2.5%] | 8 | | Regressions (secondary) | 0.6% | [0.2%, 1.4%] | 7 | | Improvements (primary) | -0.4% | [-3.0%, -0.2%] | 61 | | Improvements (secondary) | -0.4% | [-1.0%, -0.2%] | 18 | | All (primary) | -0.1% | [-3.0%, 2.5%] | 69 | - From the author: "There are some notable regressions, and I think we might be able to claw those back by turning `#[inline(always)]` into a stronger hint. But I think this PR stands decently on its own as a tidy simplification." Remove `box_free` lang item [#100036](https://github.com/rust-lang/rust/pull/100036) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e1c29d137dd779dcfce447d8d149ee6b8e9bdf78&end=a8a29070f07e47a244c8199ad582f93172019743&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 1.2% | [1.0%, 1.7%] | 4 | | Regressions (secondary) | 1.7% | [1.1%, 3.4%] | 5 | | Improvements (primary) | -0.6% | [-0.6%, -0.6%] | 2 | | Improvements (secondary) | -2.5% | [-4.4%, -1.4%] | 4 | | All (primary) | 0.6% | [-0.6%, 1.7%] | 6 | - Waiting on the author and reviewer to give their thoughts. make mir dataflow graphviz dumps opt-in [#112617](https://github.com/rust-lang/rust/pull/112617) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f217411bacbe943ead9dfca93a91dff0753c2a96&end=c911e085144324110b4b51b333e71444861b0d17&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.6% | [0.6%, 0.7%] | 3 | | Regressions (secondary) | 0.6% | [0.6%, 0.6%] | 1 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 6 | | All (primary) | 0.6% | [0.6%, 0.7%] | 3 | - Regressions are noise ## PRs S-waiting-on-team [T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler) - Issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) ### 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) - "Fixes LTO + build-std + Oz failed to resolve undefined symbols" [rust#109821](https://github.com/rust-lang/rust/pull/109821) - discussed [here](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-06-08/near/364589911) cc: @**pnkfelix**, switch over to you if it's fine? - "Add armv8r-none-eabihf target for the Cortex-R52." [rust#110482](https://github.com/rust-lang/rust/pull/110482) - cc: @**Wesley Wiser** - "Add support for NetBSD/aarch64-be (big-endian arm64)." [rust#111326](https://github.com/rust-lang/rust/pull/111326) (last review activity: about 44 days ago) - cc @**oli** - "suggest `slice::swap` for `mem::swap(&mut x[0], &mut x[1])` borrowck error" [rust#111403](https://github.com/rust-lang/rust/pull/111403) - cc: @**Matthew Jasper** (did last review) ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) - No I-compiler-nominated issues [RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) - No I-compiler-nominated RFCs this time. ## Next week's WG checkins - @_*WG-rustc-dev-guide* by @**Santiago Pastorino** and @**Yuki Okushi|217081** - Impl Trait initiative by @**oli** Agenda draft: https://hackmd.io/0I_xYjKMSc6lYT655FpWbg