---
# System prepended metadata

title: Libs-API Meeting 2022-04-20
tags: [Minutes, Libs Meetings]

---

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