--- tags: weekly, rustc --- # T-compiler Meeting Agenda 2023-07-06 ## Announcements - Next week July, 13th release of stable 1.71 :loudspeaker: - [[Types team] Formality testing sync](https://www.google.com/calendar/event?eid=MWowN2NydTBqbGpvaXI5OTVvcWptcW9mdXJfMjAyMzA3MDVUMTMwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-07-05T09:00:00-04:00> - [wg-async: Sprint planning](https://www.google.com/calendar/event?eid=N211N3RrYzVqcnVvNnBycGFrcW9mcjNocTNfMjAyMzA3MDZUMTYwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-07-06T12:00:00-04:00> - [AFIT/RPITIT Impl Triage](https://www.google.com/calendar/event?eid=N2VsaWszdm9rY3NhdDF1MjdyMjVqajNpcWVfMjAyMzA3MDZUMjAwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-07-06T16: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)) - [Types team meeting: early vs late regions](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA3MTBUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-07-10T10:00:00-04:00> - [[Types] Rotating new solver / formality / polonius deep dive](https://www.google.com/calendar/event?eid=N29vMXZqbGZ1MDIxbzllMDI3dGhocWhhZmNfMjAyMzA3MTBUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-07-10T11:00:00-04:00> ## MCPs/FCPs - New MCPs (take a look, see if you like them!) - "Migrate away from u32 as an offset/length type" [compiler-team#647](https://github.com/rust-lang/compiler-team/issues/647) - 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 14 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 41 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 41 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 22 days ago) - "[MCP] proposing a macros working group" [compiler-team#637](https://github.com/rust-lang/compiler-team/issues/637) (last review activity: about 20 days ago) - "Add support for visionOS targets" [compiler-team#642](https://github.com/rust-lang/compiler-team/issues/642) (last review activity: about 6 days ago) - "Add illumos Tier3 targets" [compiler-team#644](https://github.com/rust-lang/compiler-team/issues/644) (last review activity: about 6 days ago) - "Changes to StatementKind::Coverage" [compiler-team#645](https://github.com/rust-lang/compiler-team/issues/645) (last review activity: about 6 days ago) - 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 the `thiscall` calling convention" [rust#42202](https://github.com/rust-lang/rust/issues/42202#issuecomment-1616187726) - "Add documentation on v0 symbol mangling." [rust#97571](https://github.com/rust-lang/rust/pull/97571#issuecomment-1617734630) - "Support overriding `warnings` level for a specific lint via command line" [rust#113307](https://github.com/rust-lang/rust/pull/113307#issuecomment-1621305927) - 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) - "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633) - "Use `FieldIdx` all the way down" [compiler-team#639](https://github.com/rust-lang/compiler-team/issues/639) - "Add support for the riscv64-linux-android target" [compiler-team#640](https://github.com/rust-lang/compiler-team/issues/640) - "Implement alignment and size niches for references" [compiler-team#641](https://github.com/rust-lang/compiler-team/issues/641) - "KRabcake SANitization (KRSAN) mode" [compiler-team#646](https://github.com/rust-lang/compiler-team/issues/646) - "Drop MIPS to tier 3" [compiler-team#648](https://github.com/rust-lang/compiler-team/issues/648) - Accepted MCPs - "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 `mips64r6` and `mips32r6` options to `target_arch`" [compiler-team#632](https://github.com/rust-lang/compiler-team/issues/632) - "Assign maintainers for MIPS R6 targets" [compiler-team#638](https://github.com/rust-lang/compiler-team/issues/638) - Finalized FCPs (disposition merge) - "rustdoc: Allow whitespace as path separator like double colon" [rust#108537](https://github.com/rust-lang/rust/pull/108537) - "Add `internal_features` lint" [rust#108955](https://github.com/rust-lang/rust/pull/108955) - "style-guide: Add chapter about formatting for nightly-only syntax" [rust#111119](https://github.com/rust-lang/rust/pull/111119) - "Don't require associated types with Self: Sized bounds in `dyn Trait` objects" [rust#112319](https://github.com/rust-lang/rust/pull/112319) ### WG checkins @_*WG-llvm* by @**nagisa** and @**Nikita Popov**([previous checkin](https://hackmd.io/jG2Ea1RxQJuQye5kIiiHkA#WG-checkins)): > * LLVM 17 branches in about three weeks, which is when we'll start with the update in Rust as well. > * After much nagging from T-opsem, we've changed getelementptr inbounds semantics to always allow zero offsets. > * cbeuw has been fuzzing Rust and finding lots of miscompiles on the LLVM side, which I've been working on fixing. Types team by @**nikomatsakis** and @**Jack Huey** ([previous checkin](https://hackmd.io/8Wy81OhVQ06VG2px9R1eSA#WG-checkins)): > Progress continues. We've set up a weekly "solver meeting", essentially a deep dive into the new trait solver, a-mir-formality, polonius, etc. Also planning to have an in-person meetup around EuroRust. ## 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? 1.72?] "Fix `dropping_copy_types` lint from linting in match-arm with side-effects" [rust#113231](https://github.com/rust-lang/rust/pull/113231) - nominated by @**Urgau** - :beta: [1.72.0?] "Revert the lexing of `c"…"` string literals" [rust#113334](https://github.com/rust-lang/rust/pull/113334) - open for review from @**Michael Goulet (compiler-errors)** - fixes #113235 a P-medium regression <!-- /poll Approve beta backport of #113334? approve decline don't know --> - 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 beta nominations for `T-rustdoc` this time. - 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?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler) - Issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) ## 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) - [59 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [26 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, 2 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, 2 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, 34 P-high, 100 P-medium, 19 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) - 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-07-04](https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-07-04.md) A quiet week, with a mixed set of improvements and regressions. Overall slightly more improvements than regressions. Triage done by **@simulacrum**. Revision range: [b5e51db16dfbf5685e32dfe2d9a835a5c695afe4..52d8c490a3aabe65cdd9f2d3aed95034dd5dbad7](https://perf.rust-lang.org/?start=b5e51db16dfbf5685e32dfe2d9a835a5c695afe4&end=52d8c490a3aabe65cdd9f2d3aed95034dd5dbad7&absolute=false&stat=instructions%3Au) **Summary**: | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 1.1% | [0.3%, 2.8%] | 46 | | Regressions (secondary) | 1.5% | [0.4%, 6.9%] | 71 | | Improvements (primary) | -2.0% | [-4.2%, -0.5%] | 7 | | Improvements (secondary) | -2.5% | [-7.3%, -0.3%] | 7 | | All (primary) | 0.7% | [-4.2%, 2.8%] | 53 | 2 Regressions, 3 Improvements, 2 Mixed; 0 of them in rollups 51 artifact comparisons made in total #### Regressions Backtrace 0.3.68 [#113176](https://github.com/rust-lang/rust/pull/113176) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=839e9a6e1210934fd24b15548b811a97c77138fc&end=571c9fc8a9693bb75822d7b46a8d3bed0388e925&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 2.2% | [1.8%, 2.6%] | 12 | | Regressions (secondary) | 1.6% | [0.3%, 6.8%] | 38 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -2.1% | [-2.1%, -2.1%] | 1 | | All (primary) | 2.2% | [1.8%, 2.6%] | 12 | Appears to be due to increases in binary size, leading to longer link times. Rewrite `UnDerefer` [#112882](https://github.com/rust-lang/rust/pull/112882) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=571c9fc8a9693bb75822d7b46a8d3bed0388e925&end=d5a74249c843e06b502fb097ebea2383b9a5d9b8&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.7% | [0.3%, 1.5%] | 26 | | Regressions (secondary) | 1.1% | [0.2%, 1.9%] | 21 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.7% | [0.3%, 1.5%] | 26 | [Another rewrite](https://github.com/rust-lang/rust/pull/113316) is pending which is expected to help resolve the regression. #### Improvements A mish-mash of micro-optimizations [#113116](https://github.com/rust-lang/rust/pull/113116) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=330727467b8fdf2c43b95095a0efae7012c4f83b&end=8aed93d912ec23819c08e9a89ca1fb461b3cd2e6&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.8% | [-1.7%, -0.3%] | 16 | | Improvements (secondary) | -1.4% | [-2.3%, -0.8%] | 15 | | All (primary) | -0.8% | [-1.7%, -0.3%] | 16 | Make simd_shuffle_indices use valtrees [#112718](https://github.com/rust-lang/rust/pull/112718) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=be6e38c617d39b3b1e9ac8a3fe606cb5d72ca6af&end=72b21014344fe5a595270c951d5a15887f9c7992&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.4% | [-0.5%, -0.4%] | 3 | | Improvements (secondary) | - | - | 0 | | All (primary) | -0.4% | [-0.5%, -0.4%] | 3 | cargo update [#113046](https://github.com/rust-lang/rust/pull/113046) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bf0e22b298e282dec3589f70c67e401588d6c693&end=839e9a6e1210934fd24b15548b811a97c77138fc&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -1.1% | [-2.0%, -0.4%] | 119 | | Improvements (secondary) | -0.9% | [-1.6%, -0.2%] | 48 | | All (primary) | -1.1% | [-2.0%, -0.4%] | 119 | #### Mixed Refactor metadata emission to avoid visiting HIR [#98867](https://github.com/rust-lang/rust/pull/98867) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=eb76764ea412b36f670564f5d58c317cec8fa496&end=5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.8% | [0.5%, 0.9%] | 7 | | Regressions (secondary) | 1.0% | [0.2%, 2.3%] | 19 | | Improvements (primary) | -2.1% | [-3.9%, -0.8%] | 6 | | Improvements (secondary) | -4.4% | [-7.2%, -1.5%] | 2 | | All (primary) | -0.5% | [-3.9%, 0.9%] | 13 | Upgrade to indexmap 2.0.0 [#113304](https://github.com/rust-lang/rust/pull/113304) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0130c3a06e50ebb166655f81997ce28b9e4029b0&end=52d8c490a3aabe65cdd9f2d3aed95034dd5dbad7&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.8% | [0.4%, 1.2%] | 20 | | Regressions (secondary) | 0.7% | [0.3%, 1.2%] | 16 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.6% | [-0.6%, -0.5%] | 4 | | All (primary) | 0.8% | [0.4%, 1.2%] | 20 | ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) - "Consistently use the highest bit of vector masks when converting to i1 vectors" [rust#104693](https://github.com/rust-lang/rust/pull/104693) - issue nominated by @**nils (Nilstrieb)** to help find a reviewer for these changes (review assignment has been bounced a few times) - "Put `needs-triage` label on every new issue" [rust#113261](https://github.com/rust-lang/rust/issues/113261) - Proposal advanced by @**nils (Nilstrieb)**, asks opinion from teams [RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) - No I-compiler-nominated RFCs this time. ### Oldest PRs waiting for review - "`-Z trait-solver=next`: Deduplicate region constraints in query responses" [rust#111172](https://github.com/rust-lang/rust/pull/111172) (last review activity: about 52 days ago) - cc: @**lcnr** - "Only consider places with the same local in each_borrow_involving_path." [rust#111753](https://github.com/rust-lang/rust/pull/111753) (last review activity: about 48 days ago) - cc: @**eholk** - "Fix #[inline(always)] on closures with target feature 1.1" [rust#111836](https://github.com/rust-lang/rust/pull/111836) (last review activity: about 45 days ago) - cc: @**Jubilee** - "Simplify duplicate checks for mir validator" [rust#111917](https://github.com/rust-lang/rust/pull/111917) (last review activity: about 41 days ago) - cc: @**oli** ## Next week's WG checkins - @_*WG-mir-opt* by @**oli** - @_*WG-polymorphization* by @**davidtwco**