---
# System prepended metadata

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

---

# Libs-API Meeting 2022-05-04

###### tags: `Libs Meetings` `Minutes`

**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, Jane, Josh, David, Mara, The 8472, scottmcm

## Agenda

- [Open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg)
- [Libs team wishlist](https://hackmd.io/HPjGPC09RayylxGeaIfTew)
- Triage
- Anything else?

## Triage

### FCPs

14 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">14 <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 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 94119](https://github.com/rust-lang/rust/issues/94119#issuecomment-1107404280)] *Stabilize \`array\_from\_fn\`* - (4 checkboxes left)
  - [[merge 93203](https://github.com/rust-lang/rust/issues/93203#issuecomment-1075284811)] *Tracking Issue for scoped threads* - (2 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>

[yaahc (7)](https://rfcbot.rs/fcp/yaahc), [BurntSushi (11)](https://rfcbot.rs/fcp/BurntSushi), [Amanieu (6)](https://rfcbot.rs/fcp/Amanieu), [m-ou-se (4)](https://rfcbot.rs/fcp/m-ou-se), [dtolnay (5)](https://rfcbot.rs/fcp/dtolnay), [joshtriplett (8)](https://rfcbot.rs/fcp/joshtriplett)

### Nominated

- [5 `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*
  - [[94598](https://github.com/rust-lang/rust/pull/94598#issuecomment-1117589196)] *Add a dedicated length-prefixing method to Hasher*
    - scottmcm: This PR is breaking some hash-should-be-exactly-this tests in things like cargo.  It was discussed previously that it would be a change, since that's needed to fix the prefix-freedom issue that was identified, but I'm nominating to request the direction forward you'd like to me to take.
    - Using nightly features, cargo could implement the hasher trait for `write_str` in a way that is backwards compatible.
    - If cargo would not use a newtype but instead a type alias, it'd not be a problem. Can that be changed?
    - Should we stabilize write_str directly?
      - Not sure yet if it's the right interface.
    - Discussion about whether we support people relying on hash values
    - Feels similar to inference issues, where breakage is allowed but we should still be careful. Crater?
    - We could keep the current str+0xFF hash impl for str to not break things just yet.
      - Sounds good.
      - Maybe wait until stabilizing `write_str` before we change the default impl, so people have a stable way to fix any breakage.
      - Amanieu: Alternative: keep this str+0xFF behaviour, but a new hasher can then choose to use length prefix if it wants to.
  - [[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*
  - [[95290](https://github.com/rust-lang/rust/pull/95290)] *Document that \`OsString\` and \`OsStr\` are bytes; provide conversions to bytes*
  - [[95485](https://github.com/rust-lang/rust/pull/95485)] *Add \`Iterator::checked\_{sum, product}\`*
    - David: A new type like num::Checked takes less mental space than new traits and methods on Iterator.
    - We could `impl Sum<i32> for Checked<i32>`, if we had that type. (The input doesn't have to be `Checked`.)
    - We don't want this, because this adds a new triats and extends the Iterator interface. `Iterator::sum` is designed for use with different types to sum into depending on the exact behaviour you want. (E.g. a XorSum or something.) So using num::Checked with its own Sum impls would be the right way to do this.
  - [[96074](https://github.com/rust-lang/rust/issues/96074)] `P-high` *Rust beta: "cannot infer type" when compiling \`bottom\` crate*
    - Revert pr already merged and beta accepted.
    - Might be interesting to do a crater run that disables this there's-only-one-impl inferrence rule to see how much breaks.
    - C++ has deduction guides. Maybe we could use something similar? Inferrence defaults?

### 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)
  - [[96520](https://github.com/rust-lang/rust/pull/96520)] *generalize "incoherent impls" impl for user defined types*
    - Keeping the verbose version sounds good.

### Needs decision

None

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