---
# System prepended metadata

title: Libs-API Meeting 2021-12-08
tags: [Minutes, Libs Meetings]

---

# Libs-API Meeting 2021-12-08

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

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

## Agenda

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

## Triage

### FCPs

16 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">1 <code>rust-lang/rfcs</code> FCPs</a></summary>

  - [[merge 3184](https://github.com/rust-lang/rfcs/issues/3184#issuecomment-946682561)] *Thread local Cell methods.* - (2 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">15 <code>rust-lang/rust</code> FCPs</a></summary>

  - [[merge 84640](https://github.com/rust-lang/rust/issues/84640#issuecomment-829631948)] *Implement \`TryFrom\<char\>\` for \`u8\`* - (0 checkboxes left)
  - [[close 87228](https://github.com/rust-lang/rust/issues/87228#issuecomment-930052007)] *Decide whether \`asm!\` and/or \`global\_asm!\` should be exported from the prelude. * - (2 checkboxes left)
  - [[close 56167](https://github.com/rust-lang/rust/issues/56167#issuecomment-910742041)] *Tracking issue for HashMap::raw\_entry* - (3 checkboxes left)
  - [[merge 89621](https://github.com/rust-lang/rust/issues/89621#issuecomment-939180524)] *doc: guarantee call order for sort\_by\_cached\_key* - (2 checkboxes left)
  - [[merge 89238](https://github.com/rust-lang/rust/issues/89238#issuecomment-927177703)] *deprecate f{32,64}::DIGITS* - (2 checkboxes left)
  - [[merge 86369](https://github.com/rust-lang/rust/issues/86369#issuecomment-934899667)] *Tracking Issue for \`io::Cursor::{remaining\_slice, is\_empty}\`* - (3 checkboxes left)
  - [[merge 87096](https://github.com/rust-lang/rust/issues/87096#issuecomment-950842917)] *Tracking Issue for \`Stdin::lines\`, \`Stdin::split\` forwarder methods* - (3 checkboxes left)
  - [[merge 86845](https://github.com/rust-lang/rust/issues/86845#issuecomment-950843091)] *Tracking Issue for owned locked stdio handles* - (5 checkboxes left)
  - [[merge 86941](https://github.com/rust-lang/rust/issues/86941#issuecomment-951378107)] *Stabilise std::is\_aarch64\_feature\_detected* - (2 checkboxes left)
  - [[merge 90345](https://github.com/rust-lang/rust/issues/90345#issuecomment-955598351)] *Stabilise entry\_insert* - (3 checkboxes left)
  - [[merge 90291](https://github.com/rust-lang/rust/issues/90291#issuecomment-955599591)] *Loosen the bound on the Debug implementation of Weak.* - (3 checkboxes left)
  - [[merge 89926](https://github.com/rust-lang/rust/issues/89926#issuecomment-965742934)] *make \`Instant::{duration\_since, elapsed, sub}\` saturating and remove workarounds* - (4 checkboxes left)
  - [[merge 81156](https://github.com/rust-lang/rust/issues/81156#issuecomment-988298265)] *Implement (most of) RFC 2930 "Reading into uninitialized buffers" (ReadBuf)* - (5 checkboxes left)
  - [[merge 90955](https://github.com/rust-lang/rust/issues/90955#issuecomment-971978699)] *windows: Map \`ERROR\_INVALID\_NAME\` as \`InvalidInput\`* - (2 checkboxes left)
  - [[merge 90666](https://github.com/rust-lang/rust/issues/90666#issuecomment-980456610)] *Stabilize arc\_new\_cyclic* - (3 checkboxes left)
</details>
<p></p>

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

### Nominated

- [1 `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)
  - [[90904](https://github.com/rust-lang/rust/issues/90904)] `P-high` *Presence of \`std::simd\` sometimes breaks type inference*
    - crater run running. waiting for results

### Waiting on team

None

### Needs decision

- [3 `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)
  - [[87228](https://github.com/rust-lang/rust/issues/87228)] *Decide whether \`asm!\` and/or \`global\_asm!\` should be exported from the prelude.*
    - A lot of people don't care much. Arguments on both sides.
    - This is not a blocker for stabilizing `asm!()`, if it isn't in the prelude.
    - is_x86_feature_detected is already in the crate root (effectively 'in the prelude').
    - we can change the prelude in an edition.
    - should scope them, all of them, and possibly expose them through the prelude?
    - `std::ptr::addr_of` macro is also a 'lang feature'.
    - mark: do people who are using it often add and remove an `asm`?
       - josh+mara: yes, for hardcoded breakpoints etc.
         - jane: `breakpoint();` instead?
    - crate-wide prelude?
      - does that solve it if you have a lot of crates?
        - maybe, if it doesn't get verbose.
    - -> remove it from the prelude for now, stabilize asm without it being in the prelude, and hope for a crate-wide prelude feature.
    - Josh to RFC postpone the prelude decision.
  - [[87620](https://github.com/rust-lang/rust/pull/87620)] *io: Add the Peek trait*
    - If we'd have added `read` today, it would use a different signature (ReadBuf, not &mut []). Maybe we should not add more read-like things with the 'wrong' signature.
    - ReadBuf is not standing still.
    - Missing motivation? Code generic over peek?
      - On linux you can use TCP and unix stream sockets interchangably, so there it can be useful?
      - Peek
    - Ask for motivation + mention ReadBuf.
  - [[88967](https://github.com/rust-lang/rust/issues/88967)] *Stabilizing Iterator::intersperse breaks a large number of crates*
      - Doesn't seem urgent. marked as S-blocked

- ReadBuf (https://github.com/rust-lang/rust/pull/81156#issuecomment-988298265)
    - `&mut ReadBuf` is similar to `&mut &mut [u8]`, allowing the read() function to replace the entire ReadBuf.
    - Pin<> :grimacing: ?
    - `ReadBufMutRef` type (insert bikeshedding here), that would contain `&mut ReadBuf`, that doesn't allow replacing the buffer (pointer), but does allow updating the counter?
    - How much do we care about this problem?
    - Can we solve it separately? Looks like it, all unstable.
    - Amanieu checked that it's indeed all unstable, and then r+ it.
    - Maybe not remove the old initializer stuff yet?
      - Not worth it.

- Can't .sort() floats, because they're only PartialOrd, not Ord.
    - .sort_by_key(f64::total_cmp) is verbose and hard to discover
    - Josh: can .sort_unstable() do this, since it's weaker?
      - Some discussion about dropping Ord to PartialOrd -> doesn't seem possible.
      - Maybe something that falls back to total_cmp?
        - Discussed. Doesn't seem to work out well.

### 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)
  - [[62370](https://github.com/rust-lang/rust/issues/62370)] *Tracking issue for Box::into\_pin (feature \`box\_into\_pin\`)*
  - [[64888](https://github.com/rust-lang/rust/issues/64888)] *Tracking issue for \`report\-time\`*
  - [[74217](https://github.com/rust-lang/rust/issues/74217)] *Tracking Issue for deque\_range*
  - [[71213](https://github.com/rust-lang/rust/issues/71213)] *Tracking Issue for \`wasi\_ext\`*
  - [[69099](https://github.com/rust-lang/rust/issues/69099)] *Tracking Issue for \`std::cell::{Ref, RefMut}::leak\`*

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