--- tags: weekly, rustc --- # T-compiler Meeting Agenda 2023-05-25 ## Announcements - [Types team meeting: mir formality deep dive](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA1MjlUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-29T10:00:00-04:00> - Next week June 1st, Rust 1.70 will be unleashed :loudspeaker: - 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-rls-2.0 weekly sync-up](https://www.google.com/calendar/event?eid=MXJnbzBscDExNHJjNmVsdGhsaW8xcDljMmdfMjAyMzA1MjlUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-29T11:00:00-04:00> - [wg-async weekly](https://www.google.com/calendar/event?eid=ZDYzaGYwYnM4bWs2cHA3ZGRmazhvOGVjOXJfMjAyMzA2MDFUMjAzMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-01T16:30:00-04:00> ## MCPs/FCPs - New MCPs (take a look, see if you like them!) - "Runtime checks for occupied niches" [compiler-team#624](https://github.com/rust-lang/compiler-team/issues/624) - "Add support for Zephyr OS" [compiler-team#629](https://github.com/rust-lang/compiler-team/issues/629) - "Add `mips64r6` option to `target_arch`" [compiler-team#632](https://github.com/rust-lang/compiler-team/issues/632) - "Consistently use "region" terminology in later stages of the compiler" [compiler-team#634](https://github.com/rust-lang/compiler-team/issues/634) - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) - 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) - "Rustc Contributor Program Major Change Proposal" [compiler-team#557](https://github.com/rust-lang/compiler-team/issues/557) (last review activity: 4 months ago) - "Take MIR `Analysis` by `&mut`" [compiler-team#598](https://github.com/rust-lang/compiler-team/issues/598) (last review activity: 2 months ago) - "-C linker-flavor=clang" [compiler-team#601](https://github.com/rust-lang/compiler-team/issues/601) (last review activity: 2 months ago) - "Stable -C binary-dep-depinfo flag" [compiler-team#604](https://github.com/rust-lang/compiler-team/issues/604) (last review activity: about 13 days ago) - "Increase `TypeId`'s hash from 64 bits to 128 bits." [compiler-team#608](https://github.com/rust-lang/compiler-team/issues/608) (last review activity: about 34 days ago) - "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610) (last review activity: about 41 days ago) - "2024: Decrease debuginfo generated by `-Cdebuginfo=1`" [compiler-team#613](https://github.com/rust-lang/compiler-team/issues/613) (last review activity: about 34 days ago) - "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: about 41 days ago) - "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) (last review activity: about 34 days ago) - Pending FCP requests (check your boxes!) - No pending FCP requests this time. - 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) - "Tier 3 target proposal: bare-metal loongarch64" [compiler-team#628](https://github.com/rust-lang/compiler-team/issues/628) - "Unimplement `unsized_locals`" [compiler-team#630](https://github.com/rust-lang/compiler-team/issues/630) - "Experimental feature gate for `extern "crabi"` ABI" [compiler-team#631](https://github.com/rust-lang/compiler-team/issues/631) - "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633) - "[mir-opt] SimplifyLocals should also clean up debuginfo" [rust#110702](https://github.com/rust-lang/rust/pull/110702) - Accepted MCPs - "Integrate Enzyme into nightly rustc" [compiler-team#611](https://github.com/rust-lang/compiler-team/issues/611) - "Add a `--print=unmap-path-prefixes` flag" [compiler-team#612](https://github.com/rust-lang/compiler-team/issues/612) - "move constructors from `TyCtxt` to the constructed types" [compiler-team#616](https://github.com/rust-lang/compiler-team/issues/616) - "Rename `NEEDS_SUBST` and `NEEDS_INFER`" [compiler-team#617](https://github.com/rust-lang/compiler-team/issues/617) - "Enable the LLVM option `NoTrapAfterNoreturn` when `TrapUnreachable` is enabled." [compiler-team#618](https://github.com/rust-lang/compiler-team/issues/618) - "Redesign bootstrap stages" [compiler-team#619](https://github.com/rust-lang/compiler-team/issues/619) - "Policy for ICEs on incorrect usage of internal-only features" [compiler-team#620](https://github.com/rust-lang/compiler-team/issues/620) - "Remove multi-field `repr(simd)`" [compiler-team#621](https://github.com/rust-lang/compiler-team/issues/621) - "Stronger typing for `DefId`s" [compiler-team#623](https://github.com/rust-lang/compiler-team/issues/623) - Finalized FCPs (disposition merge) - "Tracking Issue for `debugger_visualizer`" [rust#95939](https://github.com/rust-lang/rust/issues/95939) - "Evaluate place expression in `PlaceMention`" [rust#104844](https://github.com/rust-lang/rust/pull/104844) - "Add deployment-target --print flag for Apple targets" [rust#105354](https://github.com/rust-lang/rust/pull/105354) - "Update the version of musl used on `*-linux-musl` targets to 1.2.3" [rust#107129](https://github.com/rust-lang/rust/pull/107129) - "Remove misleading target feature aliases" [rust#107707](https://github.com/rust-lang/rust/pull/107707) - "Only check outlives goals on impl compared to trait" [rust#109356](https://github.com/rust-lang/rust/pull/109356) - "Stabilize raw-dylib, link_ordinal, import_name_type and -Cdlltool" [rust#109677](https://github.com/rust-lang/rust/pull/109677) - "do not allow inference in `predicate_must_hold` (alternative approach)" [rust#110100](https://github.com/rust-lang/rust/pull/110100) - "expand: Change how `#![cfg(FALSE)]` behaves on crate root" [rust#110141](https://github.com/rust-lang/rust/pull/110141) - "rustdoc: restructure type search engine to pick-and-use IDs" [rust#110371](https://github.com/rust-lang/rust/pull/110371) - "Use fulfillment to check `Drop` impl compatibility" [rust#110577](https://github.com/rust-lang/rust/pull/110577) ### WG checkins - Impl Trait initiative by @**oli** ([previous checkin](https://hackmd.io/XSIWiDBHTyyb33sarCfpEg#WG-checkins)): > We had a types team meeting about the implementation and have found consensus on the current and future impl > There will be a lang team meeting next week about the language design around defining scopes. - @_*WG-llvm* by @**nagisa** and @**Nikita Popov** ([previous checkin](https://hackmd.io/8Wy81OhVQ06VG2px9R1eSA#WG-checkins)): > Checkin text ## 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) - [1.70.0] :beta: "Dont check `must_use` on nested `impl Future` from fn" [rust#111491](https://github.com/rust-lang/rust/pull/111491) - Closes P-medium #111484, an ICE from in one crate raised in a crater run <!-- /poll Approve beta backport of #111491? approve decline don't know --> - [1.70.0] :beta: "fix recursion depth handling after confirmation" [rust#111754](https://github.com/rust-lang/rust/pull/111754) - Closes P-medium #111729, an OOM on trait resolution <!-- /poll Approve beta backport of #111754? 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) - Older 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) - "Support #[global_allocator] without the allocator shim" [rust#86844](https://github.com/rust-lang/rust/pull/86844) (last review activity: 2 months ago) - @**pnkfelix** this seems good to merge (PR author rebased and commented the MSVC test as requested) - "Detect Python-like slicing and suggest how to fix" [rust#111133](https://github.com/rust-lang/rust/pull/111133) (last review activity: about 19 days ago) - @**Michael Goulet (compiler-errors)** anything else here to do? - "add a Callable trait that is implemented for unsafe functions, too" [rust#107123](https://github.com/rust-lang/rust/pull/107123) (last review activity: about 19 days ago) - @**Michael Goulet (compiler-errors)** reminder about triaging the crater report ## 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) - [63 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [29 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, 1 P-high, 5 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, 3 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) - [0 P-critical, 35 P-high, 95 P-medium, 16 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) - As per last meeting, decided to let this ride the train ([comment](https://github.com/rust-lang/rust/issues/109731#issuecomment-1553521897)) [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-05-23](https://github.com/rust-lang/rustc-perf/blob/512571ddefcaeb65cdd0c382de0131c0668ba449/triage/2023-05-23.md) There were a few regressions, but most were expected, and one in particular (PR #111807) is expected yield gains in object code performance at the expense of a slight compile-time hit. There are a couple PR's that need future followup, namely PRs #111364 and #111524. Triage done by **@pnkfelix**. Revision range: [3ea9ad53..cda5becc](https://perf.rust-lang.org/?start=3ea9ad532474343426e564b997891e459cda89a6&end=cda5becc27cbc7106646fbc40aacea5e7896d954&absolute=false&stat=instructions%3Au) **Summary**: | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.4% | [0.2%, 2.3%] | 28 | | Regressions (secondary) | 0.4% | [0.2%, 0.7%] | 19 | | Improvements (primary) | -0.9% | [-4.4%, -0.3%] | 11 | | Improvements (secondary) | -0.8% | [-2.2%, -0.4%] | 11 | | All (primary) | 0.1% | [-4.4%, 2.3%] | 39 | 3 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups 51 artifact comparisons made in total 30 Untriaged Pull Requests #### Regressions Remove the ThinLTO CU hack [#111364](https://github.com/rust-lang/rust/pull/111364) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=24c180c438b5ee9a150d20b9822bd7712bef8f62&end=77fb0cd3aa276919e00397f526616c5036562ea1&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 1.6% | [1.1%, 2.2%] | 2 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 1.6% | [1.1%, 2.2%] | 2 | * This is being discussed on the comment thread for PR #111364. * what is worrisome is not instructions:u, but rather the regressions to size:linked_artifact (aka binary sizes). * the PR author is going to try to replicate locally and investigate further if so. Add creation time support to `FileTimes` on apple and windows [#109773](https://github.com/rust-lang/rust/pull/109773) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8a281f9c796ee8cbebb07bbeec04ef2f2dd8db45&end=521f4dae1bdf7fe9cf9436ecef9ee7c7442708bf&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.8% | [0.7%, 0.8%] | 4 | | Regressions (secondary) | 0.6% | [0.3%, 0.7%] | 6 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.8% | [0.7%, 0.8%] | 4 | * already marked as triaged. [rustc_ty_utils] Treat `drop_in_place`'s *mut argument like &mut when adding LLVM attributes [#111807](https://github.com/rust-lang/rust/pull/111807) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cda5becc27cbc7106646fbc40aacea5e7896d954&end=f3d597b31c0f101a02c230798afa31a36bdacbc6&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.4% | [0.2%, 0.7%] | 17 | | Regressions (secondary) | 1.3% | [0.2%, 2.9%] | 6 | | Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.4% | [-0.2%, 0.7%] | 18 | * This change emits more attributes; it is expected to slow down the compiler, and that is compensated by the fact that it enables better code-generation from what we emit out of the compiler * marking as triaged. #### Improvements Rollup of 7 pull requests [#111650](https://github.com/rust-lang/rust/pull/111650) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b652d9a0fd5c5a7eeacd1ae8299166941c221230&end=e77366b57b799dfa3ce1fcb850c068723a3213ee&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -2.3% | [-4.4%, -0.6%] | 3 | | Improvements (secondary) | -2.2% | [-2.5%, -2.0%] | 2 | | All (primary) | -2.3% | [-4.4%, -0.6%] | 3 | * solely improvements to rustdoc benchmarks Rollup of 7 pull requests [#111721](https://github.com/rust-lang/rust/pull/111721) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ba6f5e3b4d60ea5a847cd4402cca594cd40b218f&end=fdd030127cc68afec44a8d3f6341525dd34e50ae&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 3 | | Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 6 | | All (primary) | -0.2% | [-0.3%, -0.2%] | 3 | * minor improvement to primary regex and secondary externs. #### Mixed Specialize query execution for incremental and non-incremental [#108062](https://github.com/rust-lang/rust/pull/108062) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9239760da89cd8e9a51536beeb0a23762064037d&end=b652d9a0fd5c5a7eeacd1ae8299166941c221230&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.2% | [0.2%, 0.3%] | 9 | | Regressions (secondary) | 0.8% | [0.2%, 2.9%] | 5 | | Improvements (primary) | -0.6% | [-1.1%, -0.3%] | 17 | | Improvements (secondary) | -0.8% | [-1.2%, -0.2%] | 31 | | All (primary) | -0.3% | [-1.1%, 0.3%] | 26 | * the sea of green improvements to scenario=full outweighs the occasional (and minor) red regressions to incr cases. * marking as triaged. Merge return place with other locals in CopyProp. [#111556](https://github.com/rust-lang/rust/pull/111556) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e77366b57b799dfa3ce1fcb850c068723a3213ee&end=5c3a3362f86f9748b4a6cb18b147893774a189ac&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 2 | | Improvements (primary) | -0.4% | [-0.7%, -0.2%] | 17 | | Improvements (secondary) | -0.8% | [-0.9%, -0.7%] | 4 | | All (primary) | -0.4% | [-0.7%, -0.2%] | 17 | * already marked as triaged. Shorten backtraces for queries in ICEs [#108938](https://github.com/rust-lang/rust/pull/108938) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=77fb0cd3aa276919e00397f526616c5036562ea1&end=77c836e1ae582661924d3b6ec4d57a2de120f59f&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.4%] | 3 | | Regressions (secondary) | 0.4% | [0.2%, 0.6%] | 10 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.2% | [-0.3%, -0.2%] | 3 | | All (primary) | 0.3% | [0.2%, 0.4%] | 3 | * already marked as triaged. do not allow inference in `predicate_must_hold` (alternative approach) [#110100](https://github.com/rust-lang/rust/pull/110100) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=92f5dea0ebe2e34ad8411e8cd8a0c97dd45b3400&end=19ca5692f69d20643656bf501fd171f1907ef875&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 1.1% | [0.9%, 1.4%] | 6 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | | All (primary) | 1.1% | [0.9%, 1.4%] | 6 | * diesel took a 1% regression in various scenarios. * there are indications from T-types that this is fixing a bug * therefore, the performance regression is acceptable; marking as triaged. `ascii::Char`-ify the escaping code in `core` [#111524](https://github.com/rust-lang/rust/pull/111524) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7047d97e012d5ed90cf2837c361150bc149837b4&end=e86fd62b6b198584a47798eb271d4b54c4dc96ec&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.4% | [0.2%, 0.7%] | 6 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.6% | [-0.7%, -0.6%] | 3 | | Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 3 | | All (primary) | 0.1% | [-0.7%, 0.7%] | 9 | * lqd identified most of this as noise. * however, there was a bump on the compile-time for html5ever that has not yet receded as of 2023-05-23; i.e. that might not be noise. * therefore, not yet marking as triaged... ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) - No issues nominated for discussion [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 - Types team by @**nikomatsakis** and @**Jack Huey** - @_*WG-mir-opt* by @**oli** Agenda draft: https://hackmd.io/lemUh_8HTHCYaAs_H8ZDHw