--- tags: weekly, rustc type: docs --- # T-compiler Meeting Agenda 2023-08-24 ## Announcements - Today 1.72 stable release ([blog post draft](https://github.com/rust-lang/blog.rust-lang.org/blob/2e8f90b448c8d9c5d1b48feb5fe0e28ad7cf603e/posts/2023-08-24-Rust-1.72.0.md)) - [Compiler Team Planning meeting](https://www.google.com/calendar/event?eid=MDJyYnJ1cGFtdWR1c2lnNjFmcHJ2b3JlODFfMjAyMzA4MjVUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-08-25T10: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 us know (or at least message @_**davidtwco** 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=ajVtNGowYjlzdDNhM2VwZG9vNjg4OTlzNDBfMjAyMzA4MjRUMTYwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-08-24T12:00:00-04:00> - [AFIT/RPITIT Impl Triage](https://www.google.com/calendar/event?eid=N2VsaWszdm9rY3NhdDF1MjdyMjVqajNpcWVfMjAyMzA4MjRUMjAwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-08-24T16:00:00-04:00> - [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA4MjhUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-08-28T10:00:00-04:00> - [[Types] Rotating new solver / formality / polonius deep dive](https://www.google.com/calendar/event?eid=N29vMXZqbGZ1MDIxbzllMDI3dGhocWhhZmNfMjAyMzA4MjhUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-08-28T11: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)) - "Simplify and improve explicitness of the check-cfg syntax" [compiler-team#636](https://github.com/rust-lang/compiler-team/issues/636) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Simplify.20and.20improve.20explicitness.20of.20the.20.E2.80.A6.20compiler-team.23636)) (last review activity: 2 months ago) - no discussion or seconding - "Add support for visionOS targets" [compiler-team#642](https://github.com/rust-lang/compiler-team/issues/642) (last review activity: about 53 days ago) - Felix [suggested](https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Add.20support.20for.20visionOS.20targets.20compiler-team.23642/near/371336514) to close until LLVM adds support for this target, no counter-argument - Old MCPs (not seconded, take a look) - "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: 4 months ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Cell.20Broadband.20Engine.20SPU.20support.20compiler-team.23614)) - Unsure if we want to second this (Felix raised a [mild concern](https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Cell.20Broadband.20Engine.20SPU.20support.20compiler-team.23614/near/377335508)) - "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: 2 months ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Consistently.20use.20.22region.22.20terminology.20in.20.E2.80.A6.20compiler-team.23634)) - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) (last review activity: 2 months ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) - proposal received mixed comments - "Add illumos Tier3 targets" [compiler-team#644](https://github.com/rust-lang/compiler-team/issues/644) (last review activity: about 28 days ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20illumos.20Tier3.20targets.20compiler-team.23644)) - [rustc#112936](https://github.com/rust-lang/rust/pull/112936) is waiting for the MCP to be seconded - "Migrate away from u32 as an offset/length type" [compiler-team#647](https://github.com/rust-lang/compiler-team/issues/647) (last review activity: about 46 days ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Migrate.20away.20from.20u32.20as.20an.20offset.2Flength.E2.80.A6.20compiler-team.23647)) - some bits merged without t-compiler seconding ([comment](https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Migrate.20away.20from.20u32.20as.20an.20offset.2Flength.E2.80.A6.20compiler-team.23647/near/376040465)) - the scope will be clarified and split into a follow-up MCP replacing this one ([comment](https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Migrate.20away.20from.20u32.20as.20an.20offset.2Flength.E2.80.A6.20compiler-team.23647/near/386612842)) - "Add `builtin:$path` option to the `-L` flag" [compiler-team#659](https://github.com/rust-lang/compiler-team/issues/659) (last review activity: about 18 days ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60builtin.3A.24path.60.20option.20to.20the.20.60-L.60.20fl.E2.80.A6.20compiler-team.23659)) - "Allow anonymous constants to be folded across crates (weak linkage + COMDAT)" [compiler-team#662](https://github.com/rust-lang/compiler-team/issues/662) (last review activity: about 4 days ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Allow.20anonymous.20constants.20to.20be.20folded.20ac.E2.80.A6.20compiler-team.23662)) - "Promote loongarch64-unknown-none* to Tier 2" [compiler-team#664](https://github.com/rust-lang/compiler-team/issues/664) (last review activity: about 4 days ago) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20loongarch64-unknown-none.2A.20to.20Tier.E2.80.A6.20compiler-team.23664)) - Pending FCP requests (check your boxes!) - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618781780) - "Tracking issue for dyn upcasting coercion" [rust#65991](https://github.com/rust-lang/rust/issues/65991#issuecomment-1670127912) - "stabilize combining +bundle and +whole-archive link modifiers" [rust#113301](https://github.com/rust-lang/rust/pull/113301#issuecomment-1679904521) - "Support overriding `warnings` level for a specific lint via command line" [rust#113307](https://github.com/rust-lang/rust/pull/113307#issuecomment-1621305927) - "Stabilize `PATH` option for `--print KIND=PATH`" [rust#114183](https://github.com/rust-lang/rust/pull/114183#issuecomment-1656270266) - Things in FCP (make sure you're good with it) - "Add a blanket flag to enable/disable codegen UB checks" [compiler-team#625](https://github.com/rust-lang/compiler-team/issues/625) - "Add support for Zephyr OS" [compiler-team#629](https://github.com/rust-lang/compiler-team/issues/629) - "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633) - "Add option to pass environment variables" [compiler-team#653](https://github.com/rust-lang/compiler-team/issues/653) - "Add tidy rule against `issue-[0-9]+.rs` tests" [compiler-team#658](https://github.com/rust-lang/compiler-team/issues/658) - "Move a `wasm32-wasi-preview1-threads` target to tier 2" [compiler-team#661](https://github.com/rust-lang/compiler-team/issues/661) - Accepted MCPs - No new accepted proposals this time. - Finalized FCPs (disposition merge) - "Lower `Or` pattern without allocating place" [rust#111752](https://github.com/rust-lang/rust/pull/111752) - "style-guide: Add section on bugs, and resolving bugs" [rust#113383](https://github.com/rust-lang/rust/pull/113383) ### WG checkins - @_*WG-llvm* by @**nagisa** and @**Nikita Popov** ([previous checkin](https://hackmd.io/dPMI9IZqR0uzp4fuZVr4lg#WG-checkins)): > Nikita reports: > * Main news is that we upgraded to LLVM 17 (https://github.com/rust-lang/rust/pull/114048), with very nice perf results. Smoothest LLVM upgrade in a while. > * We also bumped the minimum LLVM version to 15 recently, which mainly means that we only support opaque pointers now. That cleans up various stuff in codegen and especially codegen tests. - @_*WG-mir-opt* by @**oli** ([previous checkin](https://hackmd.io/IPpNv80sQAmD2ZTF6h56ng#WG-checkins)): > No updates, oli is on vacation. ## 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.73.0-beta.1] "Add projection obligations when comparing impl too" [rust#115039](https://github.com/rust-lang/rust/pull/115039) - Fixes #115033 and #115051, reported breaking compilations in 2 crates. Seems good to backport this. <!-- /poll Approve beta backport of #115039? approve decline don't know --> - No stable nominations for `T-compiler` this time. ## 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) - "More distinctive pretty-printing of function item types" [rust#99927](https://github.com/rust-lang/rust/pull/99927) - Has been stale for months, both [on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/More.20distinctive.20pretty-printing.20of.20function.20item.20types) and [Github](https://github.com/rust-lang/rust/pull/99927#issuecomment-1501179063) - candidate for closing or just in the backburner? cc @**Esteban Küber** - Other issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) ## 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) - [1 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) - [54 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [28 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, 0 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) - [0 P-critical, 0 P-high, 2 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) - [2 P-critical, 35 P-high, 100 P-medium, 18 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) - "ICE: broken mir while building rustc" [rust#114375](https://github.com/rust-lang/rust/issues/114375) - on stable since #109075 ([comment](https://github.com/rust-lang/rust/issues/114375#issuecomment-1684010652)) but only triggers with `-Zvalidate-mir`. Taken care of by @**Michael Goulet (compiler-errors)** in #115005 ([comment](https://github.com/rust-lang/rust/issues/114375#issuecomment-1685085911)) - issue is now closed, can remove the `I-compiler-nominated`? anything to discuss cc @**Wesley Wiser**? - "ScalarReplacementOfAggregates causes rustc to emit invalid LLVM debuginfo (and sometimes rustc segfaults)" [rust#115113](https://github.com/rust-lang/rust/issues/115113) - Mitigated by [rust#115139](https://github.com/rust-lang/rust/pull/115139) and (related) [rust#115140](https://github.com/rust-lang/rust/pull/115140) - missed the 1.72 train, though. @**Josh Stone (cuviper)** volunteered to contribute a patch after 1.72 is out ([comment](https://github.com/rust-lang/rust/issues/115113#issuecomment-1688956644)) - Real world fallout so far seems this [bugzilla issue](https://bugzilla.redhat.com/show_bug.cgi?id=2226564) and [rust#115156](https://github.com/rust-lang/rust/issues/115156) [T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) - "RPIT hidden types can be ill-formed" [rust#114728](https://github.com/rust-lang/rust/issues/114728) - taken care of by @**aliemjay** in #114933 [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` 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) - 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-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-08-22](https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-08-22.md) A week with very few real regressions and some good improvements through work done by @cjgillot who found a few spots where the compiler was doing unnecessary work. Triage done by **@rylev**. Revision range: [e845910..d4a881](https://perf.rust-lang.org/?start=e8459109bbb440764c1c877032189a27b9e76c4e&end=d4a881e1433cd10e424843353e1f939f5a798f4e&absolute=false&stat=instructions%3Au) **Summary**: | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 1.4% | [0.5%, 2.6%] | 13 | | Regressions (secondary) | 0.6% | [0.3%, 0.8%] | 8 | | Improvements (primary) | -0.7% | [-1.4%, -0.3%] | 59 | | Improvements (secondary) | -0.8% | [-1.3%, -0.3%] | 38 | | All (primary) | -0.3% | [-1.4%, 2.6%] | 72 | 3 Regressions, 2 Improvements, 2 Mixed; 2 of them in rollups 28 artifact comparisons made in total #### Regressions Warn on inductive cycle in coherence leading to impls being considered not overlapping [#114023](https://github.com/rust-lang/rust/pull/114023) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d7e751006cb3691d1384b74196a9cb45447acfa8&end=a32978a5e8a3c34bb5caa1175f7404c2ede019b6&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 1.3% | [0.6%, 2.5%] | 10 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 1.3% | [0.6%, 2.5%] | 10 | - The author is investigating whether this is due to the use of a temporary lint or if there is some more fundamental change happening here. Rollup of 7 pull requests [#114879](https://github.com/rust-lang/rust/pull/114879) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4e3ce0e782a30d467ddbc542c3eb5d215eac1b9d&end=60713f4234c56e21f77e37c61dd731247d0b9429&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.3% | [0.3%, 0.3%] | 2 | | Regressions (secondary) | 0.5% | [0.4%, 0.6%] | 8 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.3% | [0.3%, 0.3%] | 2 | - The perf result seems to just be noise. Remove conditional use of `Sharded` from query caches [#114892](https://github.com/rust-lang/rust/pull/114892) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f3b4c6746aa0e278797ae52e2c16fdef04136e3a&end=c5833f1956bea474034ffec5ab2c75f343548038&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.4% | [0.2%, 0.5%] | 3 | | Regressions (secondary) | 0.5% | [0.4%, 0.6%] | 8 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.4% | [0.2%, 0.5%] | 3 | - Perf results are small and worth the simplification in code. #### Improvements Do not mark shallow_lint_levels_on as eval_always. [#114536](https://github.com/rust-lang/rust/pull/114536) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=656ee47db32e882fb02913f6204e09cc7a41a50e&end=4e3ce0e782a30d467ddbc542c3eb5d215eac1b9d&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 1 | | Improvements (primary) | -0.7% | [-1.3%, -0.3%] | 30 | | Improvements (secondary) | -0.5% | [-1.0%, -0.3%] | 15 | | All (primary) | -0.7% | [-1.3%, -0.3%] | 30 | Only run MaybeInitializedPlaces dataflow once to elaborate drops [#111555](https://github.com/rust-lang/rust/pull/111555) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=07438b0928c6691d6ee734a5a77823ec143be94d&end=f3b4c6746aa0e278797ae52e2c16fdef04136e3a&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | 0.6% | [0.6%, 0.6%] | 1 | | Improvements (primary) | -0.8% | [-1.3%, -0.3%] | 27 | | Improvements (secondary) | -0.7% | [-1.1%, -0.4%] | 32 | | All (primary) | -0.8% | [-1.3%, -0.3%] | 27 | #### Mixed add a csky-unknown-linux-gnuabiv2 target [#113658](https://github.com/rust-lang/rust/pull/113658) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f960bdf1feacad4ab5a079c76ff31053c1799f71&end=180dffba142c47240ca0d93096ce90b9fd97c8d7&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 1.3% | [0.3%, 1.9%] | 3 | | Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 1 | | Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 4 | | Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 4 | | All (primary) | 0.4% | [-0.3%, 1.9%] | 7 | - Noise Rollup of 10 pull requests [#114852](https://github.com/rust-lang/rust/pull/114852) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4f4dae055b470c889968b02964a28477f9daff62&end=c57393e4f8b88444fbf0985a81a2d662862f2733&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.5% | [0.5%, 0.6%] | 4 | | Regressions (secondary) | 1.0% | [1.0%, 1.0%] | 3 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | | All (primary) | 0.5% | [0.5%, 0.6%] | 4 | - Noise ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) - No I-compiler-nominated issues at this time. [RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) - No I-compiler-nominated RFCs at this time. ### 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) - "compiler: be more clear about transparent layout violations" [rust#114015](https://github.com/rust-lang/rust/pull/114015)(last review activity: about 28 days ago) - Another one circling around, now autorolled to @_**Michael Goulet (compiler-errors)** but maybe up for grabs - "Ignore host C++ runtime in a cross build scenario" [rust#114078](https://github.com/rust-lang/rust/pull/114078)(last review activity: about 27 days ago) - cc: @**Josh Stone (cuviper)** (or reroll) ## Next week's WG checkins - @_*T-rust-analyzer* by @**Lukas Wirth** Next meetings' agenda draft: <https://hackmd.io/0WLg3ph5Rkqmvv692KMhLA>