--- title: 2022 Q3 P-high review (2022-09-30 meeting) tags: steering, rustc --- # P-high review 2022 (Q3) ## Proposed Agenda * Review the issue with no team, make sure they have one * Review the T-compiler P-high issues with no WG assigned, try to identify a WG to own them * If that fails, but they do have an *active* owner, then tag with WG-none. * Choose a category of remaining issues to review for rest of meeting * e.g. A-linkage? A-LLVM? A-codegen? A-lifetimes? ## Missing team label [P-high issues without team label][P-high issues w/o T-* label] * "Codegen/allocator regression from 1.60" [#97217](https://github.com/rust-lang/rust/issues/97217) * I'm guessing that #97217 is an issue with how LLVM is optimizing the code; either we're generating different kind of bitcode, or LLVM is failing to optimize this as frequently now for some reason. * Who should get this? It doesn't seem sufficient to just assign it to A-LLVM * Tagged with T-compiler A-LLVM * Downgraded from P-high to P-medium [P-high issues w/o T-* label]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AP-high+-label%3AT-cargo+-label%3AT-community+-label%3AT-compiler+-label%3AT-core+-label%3AT-crates-io+-label%3AT-dev-tools+-label%3AT-docs-rs+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-style+-label%3AT-types ## P-high T-compiler WG-nll (all need WG reassignment) There are *zero* such issues! Done! ## P-high T-compiler missing owner (WG or assignee) ### No WG nor assignee [P-high T-compiler issues without any working group nor individual assignee][P-high T-compiler w/o WG nor assignee] (39 open issues) * Our goal for each of these is to assign a WG label, preferably for a WG that we expect to triage issues and try to work through backlog. **MOVE THE CURSOR BELOW AS WE GO THROUGH THE MEETING** (the idea is that we take notes as we go through, but we avoid cut-and-pasting anything larger than a short line.) #### #102402 "Value differs between debug and release: 1.0 / ((-0.0) * black_box_zero)" * assigned @nikic #### #102352 "Regression: false positive from unreachable_pub lint" * pinged @petrochekov and @oli-obk * added A-lint A-visibility #### #101346 "Potential miscompilation on i686 of chacha20" * added WG-none and listed pnkfelix+wesleywiser in description as loose owners via tracking of https://github.com/llvm/llvm-project/issues/57550 #### #101060 "Codegen weirdness for sum of count_ones over an array" * added WG-none and listed pnkfelix+wesleywiser in description as loose owners via tracking of https://github.com/llvm/llvm-project/issues/57476 #### #101048 "codegen regression for bool" * nikita self-assigned #### #100914 "Double free on Linux with stable toolchain" * problem occurs with stack sizes exceeding 2G * potentially related to LLVM issue llvm/llvm-project#48911 * discussion point: should we try to invest effort in a rustc-local fix? * we decided its okay to let this sit unassigned for now #### #100725 "Borrow checking for static methods became more strict" * this is reclassified as a diagnostics issue * it will be fixed by PR #100976 * downgraded from P-high to P-medium * reassigned from T-compiler to T-types #### #99668 "How should we expose atomic load/store on targets that don't support full atomics" * much discusion/debate on issue thread about what to do here * left comment asking about what to do in rustc side to make use of more recent LLVM changes #### #98117 "Unsoundness due to where clauses not checked for well-formedness" * lcnr says they will dig into this soonish #### #97552 "Vec::deref no longer inlined if LTO is enabled" * retitled since we already added a workaround for Vec * nikic says that we're using opaque pointers in our LLVM backend, so this issue might just be resolved. #### #96306 "3.2_f32 formatted as 0 on powerpc64le" * resolved, closed #### #96194 "nested RPIT and HRTB: unclear semantics and future incompatibility" * no longer a hazard, just a feature request * removed P-high label #### #96054 "Rust 1.60.0 fails to build on Solaris" * believed resolved, closed #### #95926 "rustc 1.59/1.60 builds musl binaries that segfault, when compiling with musl-gcc wrappers, due to static-pie default" * left comment suggested potential short-term action #### #93774 "Compiler (effectively) hangs, regression from overflow error" * reassigned to T-types #### #90316 "Rust 1.56 injected a valgrind incompatibility for Linux/AAarch64" * closing as fixed #### #90256 "Rustc passes syntactically invalid input to attribute macros" * real problem. Asking @estebank and @compiler-errors to take point on it. * left comment #### #89601 "nightly-2021-09-03: Compiler hang in project with a lot of axum crate routes" * closed as resolved #### #89241 "Performance regression in string interner benchmark (1.53.0 → 1.55.0)" * closed as non-actionable #### #88888 "stability break in rust 1.54: generic Self types are currently not permitted in anonymous constants" * We don't see any obvious workaround for the problem described, which seems bad. * left comment and pinged project-const-generics to ask them to investigate paths to resolution #### #86712 "Rust musl build segfaults on startup when linked with LLD 12" * needs further bisection (and confirmation that it still occurs with newer LLD) * pnkfelix self-assigned for further investigation #### #86511 "match an std::cmp::Ordering generates less optimized code in nightly" * left comment outlining several potential action items * but also downgraded to P-medium #### #86172 "Compile error: static lifetime not satisfied but it is" * tagged with wg-async as immediate owner #### #85099 "A Pin unsoundness involving an impl DerefMut for Pin<&dyn LocalTrait>" * definitely worrisome * but T-types has already tagged themselves here #### #84873 "Compile time+memory regression between 1.49.0 and 1.50.0" * much progress made * main task is to check if issue on original code base is still a problem, since that user has since put in work-arounds. #### #84857 "auto trait candidate selection is unsound" * owned by T-types * Work seems to be ongoing in #93367, including a lint that fires today, so at least people are aware of the issue, I hope. #### #84366 "'static closures with non-'static return type are unsound" * Owned by T-types * work seems to be ongoing in PR #84385 #### #84097 "Disk usage 2-3x somewhere around 1.48" * discussion thread implies "working as expected" * left comment and closed #### #83911 "High memory use on Rust 1.51.0 with thin LTO and debuginfo" * most recent comment says: "That said, this is no longer reproduceable starting1 with nightly-2021-04-02." * closing as fixed. #### #81408 "ACCESS_VIOLATION when dereferencing once_cell::Lazy in closure with LTO" * already fixed #### #80951 "regression 1.50: Duplicate symbol linker error" * many indications that this not be real regression * there are potentially strange interactions with the channel name that are impeding the investigation of whether it is a real regression * consensus is that the actual likelihood of regression here is sufficiently low that we can downgrade * downgraded to P-medium * assigned to pnkfelix #### #80706 "ICE(stable): thread 'rustc' panicked at 'called Option::unwrap() on a None value', compiler/rustc_middle/src/ty/instance.rs:434:85" * closed as fixed #### #80703 "rust-lld doesn't work on Linux unless executed with rustup wrapper " * assigned to lqd #### #80127 "rustc has wrong signature for C function with 16-byte aligned stack argument in x86_64 Linux" * left a comment pointing at PR #103830 as being the current plan here. #### #79609 "Passing -C panic=abort still attempts to link in libunwind when targeting i686-pc-windows-gnu on v1.44+" * left comment saying that a truly seamless fix here is either hard or impossible, but that we can do much better in terms of the diangostic feedback that `rustc` provides. #### #78686 "Linking with LLD fails (on Windows) but only in 32-bit (due to space in path)" * left comment * questioned whether this should be P-high at all * did not assign any owner #### #76360 "Error reporting from attribute macros regressed in 1.46.0" * already left comment here 28 days ago. (Is there an error in our doc here?) #### #74657 "linker-plugin-lto stopped working in Rust 1.45.0" * left comment and self-assigned #### #70143 "Locals aligned to greater than page size can cause unsound behavior" * left comment and assigned to cuviper ### No WG (but has assignee, so its okay if we just ping these) [P-high T-compiler issues without any working group label][P-high T-compiler w/o WG] (53 - 39 = 14 open issues) * For each, check if it seems like owner is active. * If so, add WG-none. * If not, add a ping comment for the owner, asking for status/thoughts/is-reassignment-needed? #### #101082 "Regression: Inlined loops not fully evaluating with const-eable dependencies" * added [comment for nikic](https://github.com/rust-lang/rust/issues/101082#issuecomment-1355039292) #### #100615 "Anon lifetime in impl Trait no longer suggests adding a lifetime parameter" * closed! #### #89503 "Where bounds with associated types equality cause overflow." * reassigned to T-types #### #85155 "Improve diagnostics of evaluation of constant value failed errors" * left comment for @lqd and @oli-obk #### #84970 "Unstable fingerprints tracking issue" * left comment #### #82151 "undefined reference to linker error when using dylibs" * left [comment](https://github.com/rust-lang/rust/issues/82151#issuecomment-1355098551) #### #81317 "Type can no longer be inferred in 1.49" * left [comment](https://github.com/rust-lang/rust/issues/81317#issuecomment-1355128391) #### #80816 "regression 1.49: problem with autoderef and trait method" * might now just be E-needs-test * left [comment](https://github.com/rust-lang/rust/issues/80816#issuecomment-1355124529) #### #79590 "internal compiler error: unexpected panic" * left [comment](https://github.com/rust-lang/rust/issues/79590#issuecomment-1355138710) * and revised title #### #75385 "Link fails with actix-web when using GNU linker's default linker script" * left [comment](https://github.com/rust-lang/rust/issues/75385#issuecomment-1355143624) seeing if current owner (wesley) needs reassignment #### #70022 "Statics don't support alignments larger than the page size" * left [comment](https://github.com/rust-lang/rust/issues/70022#issuecomment-1355148305) that we should still do something here, and maybe I'll make a screencast from it. #### #67497 "Switching to opt-level=z on i686-windows-msvc triggers STATUS_ACCESS_VIOLATION" * left [comment](https://github.com/rust-lang/rust/issues/67497#issuecomment-1355153869) #### #66916 "Emscripten builds broken on nightly? (Linking errors in fresh "hello world" crate)" * pnkfelix [claimed](https://github.com/rust-lang/rust/issues/66916#issuecomment-1355155653) from wesley #### #64340 "Linking issue with Rust 1.37.0" * left [comment](https://github.com/rust-lang/rust/issues/64340#issuecomment-1355157400) ### Has WG (consider pinging) (62 - 53 = 9 open issues) [WG-async][]: 2 #### #72837 "Compiling simple (but long) code with lots of async/await takes hours" * left [comment](https://github.com/rust-lang/rust/issues/72837#issuecomment-1355164909) for tmandry #### #68109 "rustc panics when compiling code that uses tokio's LocalSet" * E-needs-test * pnkfelix [claimed](https://github.com/rust-lang/rust/issues/68109#issuecomment-1355170752) [WG-diagnostics][]: 3 #### #99256 "Source of lifetime coercion is not reported starting in 1.63" * left [comment](https://github.com/rust-lang/rust/issues/99256#issuecomment-1355174131) #### #70819 "forbid overwritten by later allow on the same "scope level"" * left [comment](https://github.com/rust-lang/rust/issues/70819#issuecomment-1355183701) #### #53934 "disambiguate between multiple suggestions and a single multi-span suggestion; or, JSON error format is not round-trippable" * left [comment](https://github.com/rust-lang/rust/issues/53934#issuecomment-1355188536) [WG-embedded][]: 1 #### #65391 "rust-lld since 1.38 overlaps .text with .rodata for embedded arm target" * left [comment](https://github.com/rust-lang/rust/issues/65391#issuecomment-1355192538) [WG-incr-comp][]: 2 #### #76037 "Disk cache ICE with big array" * pnkfelix [claimed](https://github.com/rust-lang/rust/issues/76037#issuecomment-1355194370) #### #58368 "A big regression in tokio-webpush-simple-opt" * closed as non-actionable anymore [WG-project-ffi-unwind][]: 1 #### #52652 "Abort instead of unwinding past FFI functions" **THIS IS THE CURSOR** [WG-project-ffi-unwind]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+label%3AWG-project-ffi-unwind+ [WG-incr-comp]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+label%3AWG-incr-comp [WG-embedded]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+label%3AWG-embedded [WG-diagnostics]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+label%3AWG-diagnostics [WG-async]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+label%3AWG-async [P-high T-compiler w/o WG nor assignee]: https://github.com/rust-lang/rust/issues?q=is%3Aissue+is%3Aopen+label%3AT-compiler+label%3AP-high+-label%3AWG-embedded+-label%3AWG-project-ffi-unwind+-label%3AWG-diagnostics+-label%3AWG-async+-label%3AWG-incr-comp+no%3Aassignee [P-high T-compiler w/o WG]: https://github.com/rust-lang/rust/issues?q=is%3Aissue+is%3Aopen+label%3AT-compiler+label%3AP-high+-label%3AWG-embedded+-label%3AWG-project-ffi-unwind+-label%3AWG-diagnostics+-label%3AWG-async+-label%3AWG-incr-comp