# Libs-API Meeting 2022-04-20 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr **Attendees**: David, Jane, Josh Triplett, Mara, The 8472, thomcc, Urgau ## Agenda - Triage - Anything else? ## Triage ### FCPs 15 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">15 <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 88581](https://github.com/rust-lang/rust/issues/88581#issuecomment-1054642132)] *Tracking Issue for \`int\_roundings\`* - (2 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 93203](https://github.com/rust-lang/rust/issues/93203#issuecomment-1075284811)] *Tracking Issue for scoped threads* - (2 checkboxes left) - [[merge 96078](https://github.com/rust-lang/rust/issues/96078#issuecomment-1100303475)] *Implement str to \[u8\] conversion for refcounted containers* - (3 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> [BurntSushi (11)](https://rfcbot.rs/fcp/BurntSushi), [joshtriplett (9)](https://rfcbot.rs/fcp/joshtriplett), [dtolnay (4)](https://rfcbot.rs/fcp/dtolnay), [Amanieu (7)](https://rfcbot.rs/fcp/Amanieu), [yaahc (6)](https://rfcbot.rs/fcp/yaahc), [m-ou-se (5)](https://rfcbot.rs/fcp/m-ou-se) ### Nominated - [4 `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* - We could deprecate PrefixComponent::kind and keep Prefix specific for Windows. - Prefix is Windows specific. Ideally we would have a (non_exhaustive) WindowsPrefix. - This isn't a critical issue right now, there's time. We can explore a lang thing to make enums non_exhaustive. - Related: There have been requests for having WindowsPath, UnixPath, etc., on all platforms. - E.g. a posix path into a zip file. - Things like `is_symlink` and `canonicalize` won't work on non-native paths though. - [[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* - `try_vec![]` is probably something we shouldn't do, as it's not that common of an operation. - The rest of the API is a bit hard to review quickly without a clear overview. - Ask for that overview and then discuss it again. - This could use an RFC. - [[95290](https://github.com/rust-lang/rust/pull/95290)] *Document that \`OsString\` and \`OsStr\` are bytes; provide conversions to bytes* - Discuss next week if we all read this. - [[95790](https://github.com/rust-lang/rust/pull/95790)] *Implement From\<Vec\<\_\>\> for all collections* - For Map and Set it doesn't round-trip, as duplicates disappear. - But that's already the case of BinaryHeap::from - For BTreeMap and BTreeSet there's a benefit, but only with our _current_ implementation (collecting into a Vec and sorting it there before constructing the btree). - We could use specialization, and then it also works for BTreeSet::from_iter. - Specialize using typeid hacks or actual specialization? - Actual specialization, as this is a simple case. - -> Ask to not change the API, but instead use specialization in from_iter. ### Waiting on team - [2 `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) - [[94026](https://github.com/rust-lang/rust/issues/94026)] *\`Hasher::write\` should clarify its "whole unit" behaviour* - scottmcm: PR with a proposed direction here, which would be nice to get feedback on: https://github.com/rust-lang/rust/pull/94598 - Seems safe to add as unstable. Unstably, it doesn't have much effect on stable users. - [[95227](https://github.com/rust-lang/rust/pull/95227)] *Re\-export core::ascii::EscapeDefault as core::num::EscapeAscii* - Let's leave it in ascii. None of the existing modules are good candidates, and creating a new one is not much better over leaving it where it is. ### Needs decision - [1 `rust-lang/rust` `T-libs-api` `I-needs-decision` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:I-needs-decision+is:open) - [[92116](https://github.com/rust-lang/rust/pull/92116)] *Add \`Future::poll\_once\`* ### 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)_