# Libs-API Meeting 2022-02-16 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr **Attendees**: Amanieu, David, Jane, Josh, Mara, Mark, The 8472 ## Agenda - Triage - 'Roadmap' - 2022 theme/goal/focus - Anything else? ## Triage ### FCPs 13 open T-libs-api FCPs: <details><summary><a href="https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AT-libs-api+label%3Aproposed-final-comment-period">2 <code>rust-lang/rfcs</code> FCPs</a></summary> - [[merge 3192](https://github.com/rust-lang/rfcs/issues/3192#issuecomment-1015775980)] *Add provide\_any module to core* - (4 checkboxes left) - [[merge 3228](https://github.com/rust-lang/rfcs/issues/3228#issuecomment-1034446095)] *RFC: Add a \`process\_group\` method to UNIX \`CommandExt\`* - (3 checkboxes left) </details> <details><summary><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-libs-api+label%3Aproposed-final-comment-period">11 <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 86845](https://github.com/rust-lang/rust/issues/86845#issuecomment-950843091)] *Tracking Issue for owned locked stdio handles* - (4 checkboxes left) - [[merge 90291](https://github.com/rust-lang/rust/issues/90291#issuecomment-955599591)] *Loosen the bound on the Debug implementation of Weak.* - (2 checkboxes left) - [[merge 80697](https://github.com/rust-lang/rust/issues/80697#issuecomment-1022585839)] *Tracking Issue for const\_intrinsic\_copy* - (1 checkboxes left) - [[merge 92663](https://github.com/rust-lang/rust/issues/92663#issuecomment-1023878238)] *Implement \`Write for Cursor\<\[u8; N\]\>\`, plus \`A: Allocator\` cursor support* - (3 checkboxes left) - [[merge 93263](https://github.com/rust-lang/rust/issues/93263#issuecomment-1023928386)] *Consistently present absent stdio handles on Windows as NULL handles.* - (3 checkboxes left) - [[merge 91789](https://github.com/rust-lang/rust/issues/91789#issuecomment-1026130086)] *Tracking Issue for try\_reserve method on more containers* - (5 checkboxes left) - [[merge 92472](https://github.com/rust-lang/rust/issues/92472#issuecomment-1033086212)] *proc\-macro: Stop wrapping \`ident\` matchers into groups* - (4 checkboxes left) - [[merge 93840](https://github.com/rust-lang/rust/issues/93840#issuecomment-1034327897)] *Stabilize Termination and ExitCode* - (3 checkboxes left) - [[merge 93965](https://github.com/rust-lang/rust/issues/93965#issuecomment-1038365332)] *Make regular stdio lock() return 'static handles* - (4 checkboxes left) - [[merge 90470](https://github.com/rust-lang/rust/issues/90470#issuecomment-1040742419)] *Tracking Issue for JoinHandle::is\_running* - (3 checkboxes left) </details> <p></p> [joshtriplett (4)](https://rfcbot.rs/fcp/joshtriplett), [yaahc (4)](https://rfcbot.rs/fcp/yaahc), [m-ou-se (7)](https://rfcbot.rs/fcp/m-ou-se), [pnkfelix (1)](https://rfcbot.rs/fcp/pnkfelix), [cramertj (1)](https://rfcbot.rs/fcp/cramertj), [dtolnay (3)](https://rfcbot.rs/fcp/dtolnay), [Amanieu (7)](https://rfcbot.rs/fcp/Amanieu), [BurntSushi (13)](https://rfcbot.rs/fcp/BurntSushi) ### Nominated - [2 `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) - [[90291](https://github.com/rust-lang/rust/pull/90291)] *Loosen the bound on the Debug implementation of Weak.* - Pinged andrew about his rfcbot concern. - [[94026](https://github.com/rust-lang/rust/issues/94026)] *\`Hasher::write\` should clarify its "whole unit" behaviour* - There are slice impls where splitting writes differently have different results. E.g. ones that add padding to each slice that doesn't align to 4 or 8. - Amanieu: need more time reading this. Looks like a mix of multiple issues. ### Waiting on team None ### Needs decision None ## 'Roadmap' - 2022 theme/goal/focus - Making the standard library less special - Make `String` or `Arc` less special. - We want to support people outside std to implement interesting things, some of which may want to use features currently only available to the standard library. - Potential advantages to having less tight coupling between `std` and rustc; could opt into nightly std orthogonally to nightly Rust. - It might not make sense to reduce unstable features just for the sake of it. But it's a useful indicator that something should probably be stabilized. - There's tons of crates on crates.io that do things better than std, like file system access, networking/sockets, etc. - Std in five years? - No split between core/alloc/std? - Async runtime and standard traits? - Build-std by default? - Have a bunch of things that are currently being explored in crates.io crates, but will have converged to a single implementation by then. - Note: exploration/optimization or "exploration/exploitation" tradeoff in search algorithms and utility, application to crates ecosystem vs standard library - What would we want people to do, if we magically had 5 full-time people working on the libraries? - Reviews? - Language/compiler features we want for libs - Possibly largest impact on libs could be 'existential types with external definitions' (rfc 2492), to replace the global allocator, logger, etc. - fd-based/Handle-based APIs for directories (e.g. openat) - Documentation and examples. - Some things like allocators and MaybeUninit are growing in somewhat inconsistent ways. Could use some consistent design. - Allocator wg doesn't seem very active anymore. - Various discussion about the allocator trait - Storage trait as alternative - Const eval stuff. 'Const everywhere'?