--- tags: weekly, rustc type: docs note_id: eQkxivnwRCuEACPKwn7T3A --- # T-compiler Meeting Agenda 2024-07-11 ## Announcements - 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 - Types Team: ITE (Impl Trait Everywhere) Triage <time:2024-07-11T22:00:00+01: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) - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: 5 months ago) - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) - "Target families for executable format" [compiler-team#716](https://github.com/rust-lang/compiler-team/issues/716) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Target.20families.20for.20executable.20format.20compiler-team.23716)) (last review activity: 5 months ago) - "Partial compilation using MIR-only rlibs" [compiler-team#738](https://github.com/rust-lang/compiler-team/issues/738) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Partial.20compilation.20using.20MIR-only.20rlibs.20compiler-team.23738)) (last review activity: 3 months ago) - "Add Hotpatch flag" [compiler-team#745](https://github.com/rust-lang/compiler-team/issues/745) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20Hotpatch.20flag.20compiler-team.23745)) (last review activity: about 55 days ago) - Pending FCP requests (check your boxes!) - merge: [Disallow setting some built-in cfg via set the command-line (rust#126158)](https://github.com/rust-lang/rust/pull/126158#issuecomment--2098595599) - @_**|116083** @_**|125250** @_**|119031** @_**|116118** @_**|232957** - no pending concerns - merge: [Remove the `missing_copy_implementations` lint. (rust#126293)](https://github.com/rust-lang/rust/pull/126293#issuecomment--2132638472) - @_**|125250** @_**|426609** @_**|123856** @_**|116118** - no pending concerns - Things in FCP (make sure you're good with it) - "Add `-Z embed-source` (DWARFv5 source code embedding extension)" [compiler-team#764](https://github.com/rust-lang/compiler-team/issues/764) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60-C.20embed-source.60.20.28DWARFv5.20source.20cod.E2.80.A6.20compiler-team.23764)) - "MCP: Alternate cargo freshness algorithm, unstable flag to annotate depinfo file with checksums and file sizes" [compiler-team#765](https://github.com/rust-lang/compiler-team/issues/765) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/MCP.3A.20Alternate.20cargo.20freshness.20algorithm.3A.E2.80.A6.20compiler-team.23765)) - "Implement lint against ambiguous negative literals" [rust#121364](https://github.com/rust-lang/rust/pull/121364) - Accepted MCPs - "Promote wasm32-wasip2 to a Tier 2 target" [compiler-team#760](https://github.com/rust-lang/compiler-team/issues/760) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20wasm32-wasip2.20to.20a.20Tier.202.20target.20compiler-team.23760)) - "Remove `Nonterminal` and `TokenKind::Interpolated`" [compiler-team#763](https://github.com/rust-lang/compiler-team/issues/763) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60Nonterminal.60.20and.20.60TokenKind.3A.3AInte.E2.80.A6.20compiler-team.23763)) - MCPs blocked on unresolved concerns - merge: [Add a new `--build-id` flag to rustc (compiler-team#635)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1777545767) - @_**|125250** @_**|116107** @_**|125294** @_**|123856** - concerns: [other-existing-options (by petrochenkov)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) [option-name (by wesleywiser)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936) - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649)) - concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) - merge: [Stabilize `--env-set` option (rust#119926)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1898766442) - @_**|119009** @_**|124288** @_**|123586** @_**|125250** @_**|119031** @_**|124287** @_**|116118** - concerns: [other-rustc-vars (by petrochenkov)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1900703005) - merge: [sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317) - @_**|124287** - concerns: [stabilization-scope (by wesleywiser)](https://github.com/rust-lang/rust/pull/123617#issuecomment--2102637174) - merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548) - @_**|125250** @_**|232957** - concerns: [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172) - Finalized FCPs (disposition merge) - No new finished FCP (disposition merge) this time. - Other teams finalized FCPs - "Tracking issue for function attribute `#[coverage]`" [rust#84605](https://github.com/rust-lang/rust/issues/84605) - "Don't make statement nonterminals match pattern nonterminals" [rust#120221](https://github.com/rust-lang/rust/pull/120221) - "Allow `#[deny]` inside `#[forbid]` as a no-op" [rust#121560](https://github.com/rust-lang/rust/pull/121560) - "Bump `elided_lifetimes_in_associated_constant` to deny" [rust#124211](https://github.com/rust-lang/rust/pull/124211) - "Deny keyword lifetimes pre-expansion" [rust#126762](https://github.com/rust-lang/rust/pull/126762) ### WG checkins None ## 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: "Update LLVM submodule" [rust#127364](https://github.com/rust-lang/rust/pull/127364) - Authored by DianQK - Fixes #127260 and #127286 (P-high miscompilations) - [Changes](https://github.com/rust-lang/llvm-project/compare/e6a6470d1eb4c88fee4b1ea98cd8e0ac4a181c16...c54cff0e6e4d1a0d0a2df7c1ce3d96cdd554763e) <!-- /poll Approve beta backport of #127364? approve deny don't know --> - :beta: "instantiate higher ranked goals in candidate selection again" [rust#127568](https://github.com/rust-lang/rust/pull/127568) - Authored by lcnr (thanks!) - As discussed [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-06-27/near/450445893). Reverts #119820 as that PR has a significant impact and breaks code which feels like it should work. <!-- /poll Approve beta backport of #127568? approve deny don't know --> - No stable nominations for `T-compiler` this time. [T-types stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-types) / [T-types beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-types) - No beta nominations for `T-types` this time. - No stable nominations for `T-types` 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) - [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) - [70 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [42 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, 3 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, 1 P-high, 5 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, 35 P-high, 100 P-medium, 17 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` 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` 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) - "regression: trait bound is not satisfied Cow/Borrow<str>" [rust#127339](https://github.com/rust-lang/rust/issues/127339) - regressions reverted in #127568 (beta-backport nominated) - "regression: borrowed data escapes outside of the method" [rust#127342](https://github.com/rust-lang/rust/issues/127342) - fixed downstream [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+) - "regression: trait bound not satisfied" [rust#125194](https://github.com/rust-lang/rust/issues/125194) - regressions reverted in #127568 (beta-backport nominated) ## Performance logs > [triage logs for 2024-07-09](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-07-09.md) More regressions than improvements this week, caused by a combination of fixes, refactorings, third-party dependency updates and in general the compiler doing slightly more work. Triage done by **@kobzol**. Revision range: [cf2df68d..a2d58197](https://perf.rust-lang.org/?start=cf2df68d1f5e56803c97d91e2b1a9f1c9923c533&end=a2d58197a766085856504328948c89a33a6a36e8&absolute=false&stat=instructions%3Au) **Summary**: | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.7% | [0.2%, 2.5%] | 53 | | Regressions (secondary) | 1.0% | [0.4%, 1.5%] | 31 | | Improvements (primary) | -0.6% | [-1.2%, -0.2%] | 10 | | Improvements (secondary) | -1.7% | [-2.4%, -1.4%] | 4 | | All (primary) | 0.5% | [-1.2%, 2.5%] | 63 | 1 Regression, 2 Improvements, 7 Mixed; 3 of them in rollups 62 artifact comparisons made in total #### Regressions Make `can_eq` process obligations (almost) everywhere [#127172](https://github.com/rust-lang/rust/pull/127172) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=20ae37c18df95f9246c019b04957d23b4164bf7a&end=89aefb9c53090851be903b5a9171a2efdc3fd16f&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.6%] | 25 | | Regressions (secondary) | 0.8% | [0.7%, 0.9%] | 7 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.3% | [0.2%, 0.6%] | 25 | - Small regression across several benchmarks. - Not marking as triaged yet, https://github.com/rust-lang/rust/pull/127473 has been opened to investigate a potential performance fix. #### Improvements Make jump threading state sparse [#127036](https://github.com/rust-lang/rust/pull/127036) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1cfd47fe0b78f48a04ac8fce792a406b638da40b&end=2b90614e94cfb400820cfc10fe63b0db74f9e67a&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.8% | [-1.1%, -0.5%] | 5 | | Improvements (secondary) | -0.4% | [-0.4%, -0.4%] | 1 | | All (primary) | -0.8% | [-1.1%, -0.5%] | 5 | Cache hir_owner_nodes in ParentHirIterator. [#127421](https://github.com/rust-lang/rust/pull/127421) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=89aefb9c53090851be903b5a9171a2efdc3fd16f&end=b1de36ff34a4fe4ba820f195481a13aee74e1358&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.3% | [-1.0%, -0.2%] | 16 | | Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 3 | | All (primary) | -0.3% | [-1.0%, -0.2%] | 16 | #### Mixed Check alias args for WF even if they have escaping bound vars [#123737](https://github.com/rust-lang/rust/pull/123737) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=67f0d43890801f50ef2d24cd66de523f89ccb157&end=d163e5e515d470a713f7d6907852904622a85d4e&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.5% | [0.5%, 0.5%] | 1 | | Regressions (secondary) | 0.7% | [0.4%, 1.1%] | 4 | | Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 2 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.0% | [-0.2%, 0.5%] | 3 | - This change is required for further improvements of the type system, the compiler does a bit more work. - The regression is limited to one stress test and one cargo benchmark. - Marked as triaged. Re-implement a type-size based limit [#125507](https://github.com/rust-lang/rust/pull/125507) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2db4ff40af2b9f93b6240dbd67ed7f2f34b19776&end=c872a1418a4be3ea84a8d5232238b60d35339ba9&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 1.3% | [0.3%, 1.9%] | 5 | | Regressions (secondary) | 0.9% | [0.9%, 0.9%] | 1 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.4% | [-0.4%, -0.4%] | 1 | | All (primary) | 1.3% | [0.3%, 1.9%] | 5 | - This PR re-enabled a type size limit check that was not working for a long time. - It heavily regressed a stress test that contains very deeply nested types, this regression has been resolved in https://github.com/rust-lang/rust/pull/127288. - It seems like the PR is causing issues for various projects, and it might be reverted, but the perf. regression itself has been fixed by https://github.com/rust-lang/rust/pull/127288. - Marked as triaged. rustdoc: update to pulldown-cmark 0.11 [#127127](https://github.com/rust-lang/rust/pull/127127) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b45401283fad51849dbb37d78f0b2093a21fb58f&end=66b4f0021bfb11a8c20d084c99a40f4a78ce1d38&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.8% | [0.2%, 1.8%] | 16 | | Regressions (secondary) | 0.5% | [0.3%, 0.6%] | 7 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | | All (primary) | 0.8% | [0.2%, 1.8%] | 16 | - This PR updated the used version of `pulldown-cmark`, which resolves several bugs in handling doc blocks. - It caused a small regression in `doc` builds. - Marked as triaged. cache type sizes in type-size limit visitor [#127288](https://github.com/rust-lang/rust/pull/127288) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c4225812973cee4bba952cbf7a421f69871fed0d&end=cc8da78a036dc3c15c35a97651b02af9a6d30c1e&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:------:|:---------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.3%] | 9 | | Regressions (secondary) | 0.7% | [0.6%, 0.8%] | 3 | | Improvements (primary) | -1.3% | [-1.6%, -0.4%] | 4 | | Improvements (secondary) | -85.4% | [-99.8%, -1.9%] | 7 | | All (primary) | -0.2% | [-1.6%, 0.3%] | 13 | - Resolved a perf. regression from https://github.com/rust-lang/rust/pull/125507. Rollup of 8 pull requests [#127403](https://github.com/rust-lang/rust/pull/127403) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5c08cc765af9975d4b176f7a377bbf927791e20d&end=51917e2e69702e5752bce6a4f3bfd285d0f4ae39&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.2% | [0.2%, 0.3%] | 3 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.9% | [-1.3%, -0.6%] | 9 | | All (primary) | 0.2% | [0.2%, 0.3%] | 3 | - Small regression on a single benchmark, but only in incremental unchanged build. - Improvements outweigh the regressions. - Marked as triaged. Rollup of 10 pull requests [#127476](https://github.com/rust-lang/rust/pull/127476) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9af6fee87de71729efca7dbb61c0931180895424&end=7fdefb804ec300fb605039522a7c0dfc9e7dc366&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.5% | [0.2%, 1.7%] | 15 | | Regressions (secondary) | 0.3% | [0.1%, 0.7%] | 3 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | | All (primary) | 0.5% | [0.2%, 1.7%] | 15 | - Small regressions on `doc` builds caused by https://github.com/rust-lang/rust/pull/127439. - This is a necessary refactoring, and the author has deemed the small perf. hit to be worth it. - Marked as triaged. Rollup of 5 pull requests [#127486](https://github.com/rust-lang/rust/pull/127486) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cfd7cf5a0e497c238dcf9947e2eeec01837beeb4&end=a06e9c83f6bc6b9b69f1b0d9f1ab659f8f03db4d&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.4% | [0.2%, 0.4%] | 7 | | Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 | | Improvements (primary) | -0.8% | [-0.8%, -0.8%] | 1 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.2% | [-0.8%, 0.4%] | 8 | - Unclear which PR has caused the (small) regression. - Not marking as triaged yet. ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) - None [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 - "Report a specialized error when a `'static` obligation comes from an `impl dyn Trait`" [rust#121274](https://github.com/rust-lang/rust/pull/121274) - cc @**León Orell Liehr (fmease)** - "Apply dllimport in ThinLTO for -Z dylib-lto" [rust#122790](https://github.com/rust-lang/rust/pull/122790) - cc @**Wesley Wiser** - "Suggest borrowing on fn argument that is `impl AsRef`" [rust#124599](https://github.com/rust-lang/rust/pull/124599) - cc: @**Wesley Wiser** - "PinCoerceUnsized trait into core" [rust#125048](https://github.com/rust-lang/rust/pull/125048) (last review activity: about 59 days ago) - cc @**Michael Goulet (compiler-errors)** ## Next week's WG checkins None Next meetings' agenda draft: [hackmd link](https://hackmd.io/qw4V2S72S76yFPEn-uk2bg)