owned this note
owned this note
Published
Linked with GitHub
---
tags: weekly, rustc
type: docs
note_id: 8PHAmxDiTwiyWL202LNelw
---
# T-compiler Meeting Agenda 2024-08-08
## Announcements
- A Rust 1.80.1 will be out (with stable backports from last week): [blog post](https://github.com/rust-lang/blog.rust-lang.org/blob/4375ceaf547eeab0710f7e0591e56ea991842262/posts/2024-08-08-Rust-1.80.1.md).
- 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-08-08T22:00:00+01:00>
- wg-rust-analyzer steering meeting on Zulip (https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Steering.20meeting) <time:2024-08-09T17:00:00+01:00>
- wg-macros triage meeting Zulip (https://rust-lang.zulipchat.com/#narrow/stream/410876-wg-macros.2Ftriage) <time:2024-08-09T18:00:00+01:00>
## MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- "Don't track `--emit=` options as part of crate SVH" [compiler-team#769](https://github.com/rust-lang/compiler-team/issues/769) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Don.27t.20track.20.60--emit.3D.60.20options.20as.20part.20of.20.E2.80.A6.20compiler-team.23769))
- 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)
- "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: 6 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: 2 months ago)
- Pending FCP requests (check your boxes!)
- merge: [sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317)
- no pending checkboxes
- concerns: [stabilization-scope (by wesleywiser)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2192330122)
- merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548)
- @_**|232957**
- concerns (basically lifted because no consensus was found): [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172)
- Things in FCP (make sure you're good with it)
- No FCP requests this time.
- Accepted MCPs
- No new accepted proposals this time.
- MCPs blocked on unresolved concerns
- "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: 6 months ago)
- concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318)
- 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)
- Finalized FCPs (disposition merge)
- "Enforce supertrait outlives obligations hold when confirming impl" [rust#124336](https://github.com/rust-lang/rust/pull/124336)
- "Disallow setting some built-in cfg via set the command-line" [rust#126158](https://github.com/rust-lang/rust/pull/126158)
- "turn `invalid_type_param_default` into a `FutureReleaseErrorReportInDeps`" [rust#127655](https://github.com/rust-lang/rust/pull/127655)
- Other teams finalized FCPs
- "Enforce supertrait outlives obligations hold when confirming impl" [rust#124336](https://github.com/rust-lang/rust/pull/124336)
- "turn `invalid_type_param_default` into a `FutureReleaseErrorReportInDeps`" [rust#127655](https://github.com/rust-lang/rust/pull/127655)
- "Stabilize unsafe extern blocks (RFC 3484)" [rust#127921](https://github.com/rust-lang/rust/pull/127921)
### 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: "Do not apply `#[do_not_recommend]` if the feature flag is not set" [rust#128674](https://github.com/rust-lang/rust/pull/128674)
- Authored by weiznich
- nominated preemptively (still a work in progress)
<!--
/poll Approve beta backport of #128674?
approve
deny
don't know
-->
- :beta: "Normalize when equating `dyn` tails in MIR borrowck" [rust#128694](https://github.com/rust-lang/rust/pull/128694)
- Authored by compiler-errors
- Fixes #128621 a P-high regression
<!--
/poll Approve beta backport of #128694?
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)
- "Stabilize `extended_varargs_abi_support`" [rust#116161](https://github.com/rust-lang/rust/pull/116161)
- "Better errors with bad/missing identifiers in MBEs" [rust#118939](https://github.com/rust-lang/rust/pull/118939)
- "Uplift `clippy::invalid_null_ptr_usage` lint" [rust#119220](https://github.com/rust-lang/rust/pull/119220)
- "Rename `AsyncIterator` back to `Stream`, introduce an AFIT-based `AsyncIterator` trait" [rust#119550](https://github.com/rust-lang/rust/pull/119550)
- "Initial support for auto traits with default bounds" [rust#120706](https://github.com/rust-lang/rust/pull/120706)
- "Disallow deriving (other than Copy/Clone) on types with unnamed fields" [rust#121270](https://github.com/rust-lang/rust/pull/121270)
- "Emit a warning if a `match` is too complex" [rust#122685](https://github.com/rust-lang/rust/pull/122685)
- [Issues in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ)
## Issues of Note
### Short Summary
- [2 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)
- [37 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, 0 P-high, 3 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, 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, 36 P-high, 100 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)
- "ICE: `adding a def'n for node-id NodeId(18) and def kind AnonConst but a previous def'n exists`" [rust#128016](https://github.com/rust-lang/rust/issues/128016)
- Can be fixed by #128760 in beta
- Note: that patch points to `rust:beta` branch but it is not `beta-nominated`. Should it be?
[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)
- 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+)
- "Generated WebAssembly unexpectedly requires reference types" [rust#128475](https://github.com/rust-lang/rust/issues/128475)
- Alex Chrichton prepared #128511 to document this behaviour. "Fixing" this would very complicated and involves LLVM.
## Performance logs
> [triage logs 2024-08-06](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-08-06.md)
This week saw several large improvements caused mostly by the [update to LLVM 19](https://github.com/rust-lang/rust/pull/127513). There were some regressions in several pull requests, but most of them were immediately fixed in a follow-up PR.
Triage done by **@kobzol**.
Revision range: [7e3a9718..8c7e0e16](https://perf.rust-lang.org/?start=7e3a971870f23c94f7aceb53b490fb37333150ff&end=8c7e0e160831866bc1a40691a39455aac21271c0&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary) | 1.0% | [0.2%, 3.8%] | 91 |
| Regressions (secondary) | 1.9% | [0.2%, 19.2%] | 104 |
| Improvements (primary) | -4.4% | [-15.8%, -0.3%] | 120 |
| Improvements (secondary) | -3.3% | [-10.4%, -0.2%] | 70 |
| All (primary) | -2.1% | [-15.8%, 3.8%] | 211 |
6 Regressions, 3 Improvements, 5 Mixed; 4 of them in rollups
51 artifact comparisons made in total
#### Regressions
Rollup of 7 pull requests [#128413](https://github.com/rust-lang/rust/pull/128413) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f8060d282d42770fadd73905e3eefb85660d3278&end=249cf71f11a29b3fb68e8a35969569d8bb7958ee&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.6% | [0.2%, 1.9%] | 28 |
| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 7 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.6% | [0.2%, 1.9%] | 28 |
- The regression was caused by https://github.com/rust-lang/rust/pull/128357.
- The regression should be fixed by https://github.com/rust-lang/rust/pull/128550.
- Marked as triaged.
Rollup of 6 pull requests [#128469](https://github.com/rust-lang/rust/pull/128469) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=28a58f2fa7f0c46b8fab8237c02471a915924fe5&end=71b211609605590423a68ba3f503e53404d4fdb4&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.7%] | 10 |
| Regressions (secondary) | 1.0% | [0.2%, 2.1%] | 36 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | -2.5% | [-2.5%, -2.5%] | 1 |
| All (primary) | 0.3% | [-0.2%, 0.7%] | 11 |
- The regression was caused by https://github.com/rust-lang/rust/pull/128443.
- The regression was later fixed in https://github.com/rust-lang/rust/pull/128544.
- Marked as triaged.
Rewrite binary search implementation [#128254](https://github.com/rust-lang/rust/pull/128254) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2cec7a85ed4868c90194a2187d2751788e298197&end=19326022d243f487b5752661cd9b597d620a489e&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.5% | [0.2%, 1.7%] | 16 |
| Regressions (secondary) | 6.2% | [0.2%, 19.5%] | 6 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -4.1% | [-4.1%, -4.1%] | 1 |
| All (primary) | 0.5% | [0.2%, 1.7%] | 16 |
- This PR optimized the standard library implementation of binary search.
- The regression is caused by LLVM spending more time in optimizing the new binary search, because it is now more amenable to unrolling and other optimizations.
- Marked as triaged.
Rollup of 7 pull requests [#128614](https://github.com/rust-lang/rust/pull/128614) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bbf60c897e18a72923129c63ff33ce2de2968815&end=64ebd39da5ec28caa3bd7cbb3f22f5949432fe2b&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.8% | [0.4%, 1.3%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | - | - | 0 |
- The regression was caused by https://github.com/rust-lang/rust/pull/127921.
- The compiler now performs more work, so a small regression is expected.
- Marked as triaged.
Update the stdarch submodule [#128466](https://github.com/rust-lang/rust/pull/128466) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8f63e9f8732d8688f2b5e1c816569f65ee185c7e&end=b389b0ab72cb0aa9acf4df0ae0c0e12090782da9&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.7% | [0.2%, 2.6%] | 13 |
| Regressions (secondary) | 1.0% | [0.2%, 4.3%] | 32 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.7% | [0.2%, 2.6%] | 13 |
- Small regression on several benchmarks, caused by the standard library becoming larger.
- Marked as triaged.
Enforce supertrait outlives obligations hold when confirming impl [#124336](https://github.com/rust-lang/rust/pull/124336) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=83e9b93c90bcd7f52d17d09b52e3a2eff707c46a&end=2b78d920964e1d70927bcd208529bda0e11120d0&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.6% | [0.2%, 1.5%] | 95 |
| Regressions (secondary) | 1.8% | [0.2%, 4.2%] | 38 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.6% | [0.2%, 1.5%] | 95 |
- Medium regression on a lot of primary benchmarks.
- Not marking as triaged yet, investigation ongoing.
#### Improvements
Rollup of 6 pull requests [#128504](https://github.com/rust-lang/rust/pull/128504) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e60ebb2f2c1facba87e7971798f3cbdfd309cd23&end=a886938671e1fde9d7271dce8ca3d6938bae9d2e&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 12 |
| All (primary) | - | - | 0 |
Delegation: second attempt to improve perf [#128441](https://github.com/rust-lang/rust/pull/128441) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=64ebd39da5ec28caa3bd7cbb3f22f5949432fe2b&end=8f63e9f8732d8688f2b5e1c816569f65ee185c7e&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.7%, -0.2%] | 9 |
| Improvements (secondary) | -0.5% | [-1.1%, -0.1%] | 9 |
| All (primary) | -0.4% | [-0.7%, -0.2%] | 9 |
Check divergence value first before doing span operations in `warn_if_unreachable` [#128544](https://github.com/rust-lang/rust/pull/128544) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ebd08d8ed5c8904de8700def78adc1dbd5727684&end=ab1527f1d6560168f9fd36fa8cd7ba677c1d36ad&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.5%, -0.2%] | 21 |
| Improvements (secondary) | -1.0% | [-2.1%, -0.2%] | 34 |
| All (primary) | -0.3% | [-0.5%, -0.2%] | 21 |
#### Mixed
Delegation: support generics for delegation from free functions [#125929](https://github.com/rust-lang/rust/pull/125929) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e69c19ea0b8cf29ab8188a0eb5e899655464a1ff&end=1ddedbaa5919b7b3e70d984660e21e844c615c97&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.2%, 0.8%] | 11 |
| Regressions (secondary) | 0.5% | [0.1%, 1.2%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 2 |
| All (primary) | 0.4% | [0.2%, 0.8%] | 11 |
- The regression was resolved in https://github.com/rust-lang/rust/pull/128441.
- Marked as triaged.
Update to LLVM 19 [#127513](https://github.com/rust-lang/rust/pull/127513) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e552c168c72c95dc28950a9aae8ed7030199aa0d&end=0b5eb7ba7bd796fb39c8bb6acd9ef6c140f28b65&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary) | 1.3% | [0.2%, 3.6%] | 13 |
| Regressions (secondary) | 0.9% | [0.2%, 3.4%] | 37 |
| Improvements (primary) | -3.2% | [-15.8%, -0.2%] | 172 |
| Improvements (secondary) | -2.6% | [-10.5%, -0.2%] | 82 |
| All (primary) | -2.9% | [-15.8%, 3.6%] | 185 |
- This was a large performance increase caused by an update to LLVM 19.
- Improvement far outweigh the regressions.
- Marked as triaged.
Accelerate GVN a little [#126991](https://github.com/rust-lang/rust/pull/126991) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=99322d84c4e216940621c356787331d8ae362326&end=28a58f2fa7f0c46b8fab8237c02471a915924fe5&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 |
| Regressions (secondary) | 2.1% | [2.1%, 2.1%] | 1 |
| Improvements (primary) | -0.4% | [-0.4%, -0.3%] | 2 |
| Improvements (secondary) | -0.7% | [-1.0%, -0.4%] | 6 |
| All (primary) | -0.2% | [-0.4%, 0.3%] | 3 |
- More improvements than regressions.
- Marked as triaged.
Revert recent changes to dead code analysis [#128404](https://github.com/rust-lang/rust/pull/128404) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ad0a2b7180c06514370c4c7a7a73ee75158e88fa&end=1f47624f9abad7974afe1c016a4e8b07f4254ee4&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 1.1% | [0.7%, 1.7%] | 9 |
| Improvements (primary) | -0.4% | [-1.2%, -0.2%] | 47 |
| Improvements (secondary) | -2.9% | [-10.7%, -0.2%] | 15 |
| All (primary) | -0.4% | [-1.2%, -0.2%] | 47 |
- More improvements than regressions.
- Marked as triaged.
Change output normalization logic to be linear against size of output [#128200](https://github.com/rust-lang/rust/pull/128200) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c9687a95a602091777e28703aa5abf20f1ce1797&end=8c7e0e160831866bc1a40691a39455aac21271c0&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.4% | [0.3%, 0.5%] | 6 |
| Improvements (primary) | -0.9% | [-2.6%, -0.2%] | 19 |
| Improvements (secondary) | -0.5% | [-0.7%, -0.3%] | 10 |
| All (primary) | -0.9% | [-2.6%, -0.2%] | 19 |
- This PR fixed a small regression from https://github.com/rust-lang/rust/pull/127528.
- More improvements than regressions.
- Marked as triaged.
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- "ill-typed unused FFI declarations can cause UB" [rust#46188](https://github.com/rust-lang/rust/issues/46188)
- nominated by @**RalfJ** ([comment](https://github.com/rust-lang/rust/issues/46188#issuecomment-2268730910))
- Attempted to write a patch in #128247 but ultimately hard to fix (related [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/187780-t-compiler.2Fwg-llvm/topic/Fixing.20codegen.20for.20multiple.20different.20imports.20of.20the.20same.20fn)). I am also increasingly skeptical whether LLVM will cope well with functions declared as `@func_name = external global [0 x i8]` -- aren't functions special e.g. in how they are treated by the linker on some platforms, and other things like that? Also this will hit entirely untested codepaths in LLVM.
- How to best resolve this issue? Re-consider priority?
- "Tracking Issue for the C-cmse-nonsecure-call ABI" [rust#81391](https://github.com/rust-lang/rust/issues/81391)
- nominated by @**Jieyou Xu** ([comment](https://github.com/rust-lang/rust/issues/81391#issuecomment-2267314513)):
- also nominated for T-lang
- Does this need an MCP/FCP for stabilization, or does this need further design?
- Does this need a joint T-compiler/T-lang FCP?
- We should help the people working on cmse-related things to find knowledgeable reviewers / domain experts who can help reviewing the changes, or otherwise provide advice on how to split related PRs for easier reviewing.
- Are cmse-related efforts being tracked anywhere?
- "[DRAFT] #[contracts::requires(...)]" [rust#128045](https://github.com/rust-lang/rust/pull/128045)
- nominated by @**Jieyou Xu** ([comment](https://github.com/rust-lang/rust/pull/128045#issuecomment-2267121847)): looking for a reviewer familiar with attribute handling / HIR/MIR changes
- The current challenge seems to be that existing attribute handling only supports a "single path segment", i.e. `#[contracts(<inner_expr>)]` but not `#[contracts::requires(<inner_expr>)]`. We also can't trivially reuse existing `register_attr!` or visitor because they impose strict limits on the `<inner_expr>` and require it to be very primitive (like literals or identifiers or simple lists) but does not support arbitrary expressions like `x > 0`. To support the arbitrary inner expression (in that it may not necessarily be a valid rust expression), it may require relaxing that restriction, but it may raise further parsing/grammar questions. It's not clear what's the best path forward here.
[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
[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)
- "Implement unification of const abstract impls" [rust#104803](https://github.com/rust-lang/rust/pull/104803) (last review activity: 12 months ago)
- this is assigned to Oli which is now on vacation (and removed themself from a number of pending reviews). If anyone wants to pick it up here ...
- "Do not eagerly reject inference vars when trying to resolve method calls." [rust#126316](https://github.com/rust-lang/rust/pull/126316) (last review activity: about 53 days ago)
- cc @**lcnr**
## Next week's WG checkins
None
Next meetings' agenda draft: [hackmd link](https://hackmd.io/pxKZfm4kToGkN9V1pC8L1Q)