# Libs Meeting 2025-04-30
###### tags: `Libs Meetings` `Minutes`
**Meeting Link**: https://meet.jit.si/rust-libs-meeting-ujepnbwg2lzqgt6wvrndwimi
**Attendees**: Amanieu, The 8472, Josh Stone, Josh Triplett, Chris Denton, Mara, Sarah Quiñones
## Agenda
- Triage
- Anything else?
## Triage
### FCPs
5 rust-lang/rust T-libs FCPs
- merge rust.tf/115746 *Print thread ID in panic message* - (2 checkboxes left)
- merge rust.tf/137122 *Specialize \`Iterator::eq{\_by}\` for \`TrustedLen\` iterators* - (3 checkboxes left)
- merge rust.tf/132484 *unix: Relax escaping in \`Debug\` impl on \`Command\`* - (0 checkboxes left)
- merge rust.tf/135634 *stop specializing on \`Copy\`* - (4 checkboxes left)
- merge rust.tf/138879 *Ensure non\-empty buffers for large vectored I/O* - (5 checkboxes left)
[joshtriplett (3)](https://rfcbot.rs/fcp/joshtriplett), [cuviper (1)](https://rfcbot.rs/fcp/cuviper), [thomcc (2)](https://rfcbot.rs/fcp/thomcc), [m-ou-se (3)](https://rfcbot.rs/fcp/m-ou-se), [the8472 (2)](https://rfcbot.rs/fcp/the8472), [Amanieu (2)](https://rfcbot.rs/fcp/Amanieu), [BurntSushi (1)](https://rfcbot.rs/fcp/BurntSushi)
### (Prioritization Requested) rust.tf/139357 *Fix parameter order for \`\_by()\` variants of \`min\` / \`max\`/ \`minmax\` in \`std::cmp\`*
Amanieu: The order seems to have swapped.
The 8472: Do we guarantee the order?
Amanieu: No, but it caused a regression. People expect it to match.
The 8472: we're free to break these users
Mara: but we have no reason to break them. this doesn't improve performance or anything
JoshS: It improved performance, but was fixed in llvm
Amanieu: should we promise the parameter order?
Mara: Yeah. Don't think this needs an FCP, could be considered a clarification.
Amanieu: Will do an FCP.
### (Prioritization Requested) rust.tf/140207 *\`copied().min()\` performance regression on nightly*
The 8472 on github:
> It's strange that #139745 got merged considering that my similar proposal to elide side-effects in #90209 got rejected.
joboet on github:
> I merged #139745 assuming that the precise behaviour around side-effects of the iterator methods was an implementation detail, but that should probably have been discussed beforehand. Also, it was the cause of this performance regression. T-libs, do you want to revert this change?
The 8472: Probably llvm issue. Not seeing it is loaded from linear memory. Incidental.
JoshS: We should revert, because of the side effect thing. Or at least make that a more intentional thing.
Amanieu: PR is still only on nightly. We can revert. The 8472, what are your thoughts?
The 8472: I proposed removing side effects. In favour. But team decision to not do that.. We could revisit that.
The 8472: It might be possible to fix it without reverting it. Would have to take a closer look.
Amanieu: For now, we should probably revert.
Mara: +1
Amanieu: I don't think it's ever valid to remove unused clones.
The 8472: There's an RFC for being allowed to skip clone() when a type also implements Copy.. But in general, no.
Amanieu: there was a libs meeting on this in january 2022. JoshT, you were against?
JoshT: don't remember.
Amanieu: https://github.com/rust-lang/rust/pull/90209#issuecomment-1008251783
Amanieu: I see what is happening. Previously, copies were passed to the compare closure. Now, references to the original array are passed to the compare closure.
The 8472: Should do the same. llvm issue.
The 8472: two separate decisions: one about the clone side effect issue, one about the performance.
Amanieu: let's revert for now and resubmit the PR for libs-api discussion.
JoshT: Much less opposed to the general Clone case than I was before. Just FYI.
### (Prioritization Requested) rust.tf/140452 *significant mul\_add perf regression since nightly\-2025\-03\-06*
Amanieu: P-high
Amanieu: now that we provide these in compiler-builtins, they will override the glibc impl. those use ifunc to detect whether the cpu supports the fma instruction set to use those instructions instead of soft float. we have a patch in compiler-builtins. basically solved.
Mara: P-high sounds good.
{discussion on implementation}
Amanieu: our baseline x86 doesn't support fma. any cpu with avx should have it.
### (Prioritization Requested) rust.tf/140515 *\`mul\_add\` on \`\*\-pc\-windows\-gnu\` returns incorrect results*
Amanieu: bug in mingw toolchain.
Amanieu: P-medium. in theory incorrectness, but not going to have effect in practice.
### (Regressions) rust.tf/119560 *\`cargo test\` performance regression on Windows on version 1.75.0*
### (Regressions) rust.tf/139730 `P-high` *A case of compound x86\_64 performance regression caused by LLVM 20 and #124810*
### (Regressions) rust.tf/139542 *Type inference regression in 1.86 stable, due to unstable ByteStr*
### (Regressions) rust.tf/53340 *Performance regression in tight loop since rust 1.25*
### (Regressions) rust.tf/74820 `P-medium` *libtest panics when running \`should\_panic\` tests under QEMU armv7*
### (Regressions) rust.tf/85736 `P-medium` *Regression: undefined symbol \`\_\_atomic\_load\_4\` on risvc32imac\-unknown\-none\-elf*
### (Regressions) rust.tf/112180 *assertion failed: key as usize != KEY\_SENTVAL in DragonFly BSD*
### (Regressions) rust.tf/124216 `P-medium` *Performance regression: rustc failed to optimize specific x86\-64 SIMD intrinsics after 1.75.0*
### (Regressions) rust.tf/138054 `P-low` *unreachable pub item from portable\-simd with target\_feature = "avx512f"*
### (Regressions) rust.tf/130320 `P-medium` *stdlib code size increase in nightly\-2024\-09\-01 for aarch64\-linux\-android*
## Actions
- [ ] Reply to all issues/PRs discussed in this meeting, or add them to the [open action items](https://hackmd.io/Uehlc0qUQfWfvY1swYWRgQ).
_Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_