---
# System prepended metadata

title: Libs-API Meeting 2022-02-16
tags: [Minutes, Libs Meetings]

---

# 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'?