# Libs-API Meeting 2022-05-04
###### tags: `Libs Meetings` `Minutes`
**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, Jane, Josh, David, Mara, The 8472, scottmcm
## Agenda
- [Open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg)
- [Libs team wishlist](https://hackmd.io/HPjGPC09RayylxGeaIfTew)
- Triage
- Anything else?
## Triage
### FCPs
14 open T-libs-api FCPs:
<details><summary><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-libs-api+label%3Aproposed-final-comment-period">14 <code>rust-lang/rust</code> FCPs</a></summary>
- [[merge 89238](https://github.com/rust-lang/rust/issues/89238#issuecomment-927177703)] *deprecate f{32,64}::DIGITS* - (1 checkboxes left)
- [[merge 90291](https://github.com/rust-lang/rust/issues/90291#issuecomment-955599591)] *Loosen the bound on the Debug implementation of Weak.* - (1 checkboxes left)
- [[merge 91789](https://github.com/rust-lang/rust/issues/91789#issuecomment-1026130086)] *Tracking Issue for try\_reserve method on more containers* - (2 checkboxes left)
- [[merge 87074](https://github.com/rust-lang/rust/issues/87074#issuecomment-1075152025)] *Tracking Issue for RFC 3128: I/O Safety* - (5 checkboxes left)
- [[merge 89780](https://github.com/rust-lang/rust/issues/89780#issuecomment-1057495167)] *Tracking Issue for poll.ready()?* - (4 checkboxes left)
- [[merge 94530](https://github.com/rust-lang/rust/issues/94530#issuecomment-1059571324)] *Implement Copy, Clone, PartialEq and Eq for core::fmt::Alignment* - (3 checkboxes left)
- [[merge 93044](https://github.com/rust-lang/rust/issues/93044#issuecomment-1062941276)] *Add forwarding impls for Read, Write, Seek to Arc, Rc* - (4 checkboxes left)
- [[merge 94786](https://github.com/rust-lang/rust/issues/94786#issuecomment-1064599953)] *Document NonZeroXxx layout guarantees* - (2 checkboxes left)
- [[merge 94640](https://github.com/rust-lang/rust/issues/94640#issuecomment-1065939867)] *Partially stabilize \`(const\_)slice\_ptr\_len\` feature by stabilizing \`NonNull::len\`* - (3 checkboxes left)
- [[merge 82223](https://github.com/rust-lang/rust/issues/82223#issuecomment-1065947793)] *Tracking Issue for \`Result::into\_ok\_or\_err\` / \`feature(result\_into\_ok\_or\_err)\`* - (4 checkboxes left)
- [[merge 94954](https://github.com/rust-lang/rust/issues/94954#issuecomment-1081278617)] *Extend ptr::null and null\_mut to all thin (including extern) types* - (3 checkboxes left)
- [[merge 94119](https://github.com/rust-lang/rust/issues/94119#issuecomment-1107404280)] *Stabilize \`array\_from\_fn\`* - (4 checkboxes left)
- [[merge 93203](https://github.com/rust-lang/rust/issues/93203#issuecomment-1075284811)] *Tracking Issue for scoped threads* - (2 checkboxes left)
- [[merge 84186](https://github.com/rust-lang/rust/issues/84186#issuecomment-1102569115)] *Tracking Issue for \`nonzero\_ops\`* - (3 checkboxes left)
</details>
<p></p>
[yaahc (7)](https://rfcbot.rs/fcp/yaahc), [BurntSushi (11)](https://rfcbot.rs/fcp/BurntSushi), [Amanieu (6)](https://rfcbot.rs/fcp/Amanieu), [m-ou-se (4)](https://rfcbot.rs/fcp/m-ou-se), [dtolnay (5)](https://rfcbot.rs/fcp/dtolnay), [joshtriplett (8)](https://rfcbot.rs/fcp/joshtriplett)
### Nominated
- [5 `rust-lang/rust` `T-libs-api` `I-libs-api-nominated` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:I-libs-api-nominated+is:open)
- [[52331](https://github.com/rust-lang/rust/issues/52331)] *Correcting Path::components on Redox*
- [[94598](https://github.com/rust-lang/rust/pull/94598#issuecomment-1117589196)] *Add a dedicated length-prefixing method to Hasher*
- scottmcm: This PR is breaking some hash-should-be-exactly-this tests in things like cargo. It was discussed previously that it would be a change, since that's needed to fix the prefix-freedom issue that was identified, but I'm nominating to request the direction forward you'd like to me to take.
- Using nightly features, cargo could implement the hasher trait for `write_str` in a way that is backwards compatible.
- If cargo would not use a newtype but instead a type alias, it'd not be a problem. Can that be changed?
- Should we stabilize write_str directly?
- Not sure yet if it's the right interface.
- Discussion about whether we support people relying on hash values
- Feels similar to inference issues, where breakage is allowed but we should still be careful. Crater?
- We could keep the current str+0xFF hash impl for str to not break things just yet.
- Sounds good.
- Maybe wait until stabilizing `write_str` before we change the default impl, so people have a stable way to fix any breakage.
- Amanieu: Alternative: keep this str+0xFF behaviour, but a new hasher can then choose to use length prefix if it wants to.
- [[95051](https://github.com/rust-lang/rust/pull/95051)] *vec: add try\_\* methods and a try\_vec! macro to make Vec usable in without infallible allocation methods*
- [[95290](https://github.com/rust-lang/rust/pull/95290)] *Document that \`OsString\` and \`OsStr\` are bytes; provide conversions to bytes*
- [[95485](https://github.com/rust-lang/rust/pull/95485)] *Add \`Iterator::checked\_{sum, product}\`*
- David: A new type like num::Checked takes less mental space than new traits and methods on Iterator.
- We could `impl Sum<i32> for Checked<i32>`, if we had that type. (The input doesn't have to be `Checked`.)
- We don't want this, because this adds a new triats and extends the Iterator interface. `Iterator::sum` is designed for use with different types to sum into depending on the exact behaviour you want. (E.g. a XorSum or something.) So using num::Checked with its own Sum impls would be the right way to do this.
- [[96074](https://github.com/rust-lang/rust/issues/96074)] `P-high` *Rust beta: "cannot infer type" when compiling \`bottom\` crate*
- Revert pr already merged and beta accepted.
- Might be interesting to do a crater run that disables this there's-only-one-impl inferrence rule to see how much breaks.
- C++ has deduction guides. Maybe we could use something similar? Inferrence defaults?
### Waiting on team
- [1 `rust-lang/rust` `T-libs-api` `S-waiting-on-team` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:S-waiting-on-team+is:open)
- [[96520](https://github.com/rust-lang/rust/pull/96520)] *generalize "incoherent impls" impl for user defined types*
- Keeping the verbose version sounds good.
### Needs decision
None
### Stalled Tracking Issues
- [30 `rust-lang/rust` `T-libs-api` `C-tracking-issue` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:C-tracking-issue+is:open+sort:updated-asc)
- [[49355](https://github.com/rust-lang/rust/issues/49355)] *Tracking issue for implementing stack probe correctly*
- [[75638](https://github.com/rust-lang/rust/issues/75638)] *Tracking Issue for Iterator::join*
- [[67521](https://github.com/rust-lang/rust/issues/67521)] *Tracking issue for const \`alloc::Layout\`*
- [[61415](https://github.com/rust-lang/rust/issues/61415)] *Use const generics for array impls*
- [[72505](https://github.com/rust-lang/rust/issues/72505)] *Tracking issue for \`#!\[feature(const\_float\_classify)\]\`*
## Actions
- [ ] Reply to all issues/PRs discussed in this meeting, or add them to the [open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg).
_Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_