# 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)_