# Libs-API Meeting 2022-04-06 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr **Attendees**: Amanieu, David, Josh Triplett, Jane, Mara, The8472, thomcc, Urgau ## Agenda - Triage - Anything else? ## Triage ### FCPs 16 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">16 <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 41263](https://github.com/rust-lang/rust/issues/41263#issuecomment-1057368239)] *Tracking issue for \`ToOwned::clone\_into\` (\`toowned\_clone\_into\`)* - (3 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 92980](https://github.com/rust-lang/rust/issues/92980#issuecomment-1065659273)] *Tracking Issue for const offset\_from (const\_ptr\_offset\_from)* - (3 checkboxes left) - [[merge 71941](https://github.com/rust-lang/rust/issues/71941#issuecomment-1065939514)] *Tracking Issue for \`NonNull\<\[T\]\>::slice\_from\_raw\_parts\`* - (3 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) </details> <p></p> [dtolnay (4)](https://rfcbot.rs/fcp/dtolnay), [yaahc (6)](https://rfcbot.rs/fcp/yaahc), [BurntSushi (14)](https://rfcbot.rs/fcp/BurntSushi), [pnkfelix (1)](https://rfcbot.rs/fcp/pnkfelix), [m-ou-se (4)](https://rfcbot.rs/fcp/m-ou-se), [nikomatsakis (1)](https://rfcbot.rs/fcp/nikomatsakis), [Amanieu (6)](https://rfcbot.rs/fcp/Amanieu), [joshtriplett (9)](https://rfcbot.rs/fcp/joshtriplett) ### Nominated - [6 `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) - [[81061](https://github.com/rust-lang/rust/issues/81061)] *Tracking Issue for cell\_filter\_map* - FCP finished. Waiting for stabilization PR. Removed nomination label. - [[93709](https://github.com/rust-lang/rust/pull/93709)] *Rename \`first\*\`/\`last\*\` \`BTree{Set,Map}\` methods to \`min\*\`/\`max\*\`* - Josh: prefer first/last - Jane: prefer min/max. more intuitive for new people - There is already a .min() and .max() on BTreeSet since they implement Ord. the PR uses get_min and get_max to work around that, instead of just min and max. - Slice/Vec also has first and last. And for binary_search, sort, etc. we all use ascending order by default. - Amanieu: prefer keeping existing names. - thomcc: we have some api guidelines - David: current names are fine. seems natural to think of these as having a 'natural' ascending order. just like sorted slices have this obvious order. - Consensus: close it and not rename. - Seems ready for FCP afterwards. - [[94119](https://github.com/rust-lang/rust/pull/94119)] *Stabilize \`array\_from\_fn\`* - We might want to wait with try_from_fn, for the new try trait to get closer to stabilization. - Let's split it. - About the usize argument: It's easier to ignore an argument than to add this manually. Also it makes it easier for e.g. rayon to add an equivalent method that can work as a drop-in replacement that runs in a different order. - We can guarantee the order. - Using `impl` in arg position prevents any turbofish at all. - Jane: Consistent solution woudl be to stabilize it as `F`, and then fix the turbofish `_` verbosity as a lang feature later. - We should move `F` to the end. - Josh summarized the asks from the libs team, and will start an FCP when those are done. - [[94481](https://github.com/rust-lang/rust/pull/94481)] *Add JoinError that fails Span::join when hygiene is different.* - Discussed a few weeks ago: https://hackmd.io/lt-PgRRcRpW3IyzhJyFV9w - Assigned to David to respond. - [[94488](https://github.com/rust-lang/rust/pull/94488)] *Document that Display entails ToString and should be lossless and infallible* - Removed labels. - [[95290](https://github.com/rust-lang/rust/pull/95290)] *Document that \`OsString\` and \`OsStr\` are bytes; provide conversions to bytes* - Do we do this? Not do this? Or do this, but not guarantee wtf-8? - Needs more discussion. ### 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) - [[94026](https://github.com/rust-lang/rust/issues/94026)] *\`Hasher::write\` should clarify its "whole unit" behaviour* ### 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) - [[52331](https://github.com/rust-lang/rust/issues/52331)] *Correcting Path::components on Redox* ### 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) - [[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)\]\`* - [[71213](https://github.com/rust-lang/rust/issues/71213)] *Tracking Issue for \`wasi\_ext\`* ## 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)_