---
# System prepended metadata

title: Libs Meeting 2021-01-06/07
tags: [Minutes, Libs Meetings]

---

# Libs Meeting 2021-01-06/07

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

**Attendees**: David, Amanieu, Mara

## Agenda

- Announcements
  - Edition 2021: See [this hackmd](https://hackmd.io/3eG6OZWHRbSMxoRxzwNhGQ?view) (and [#edition on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/268952-edition)).
    Put all edition change ideas there this or next month.
    - Seems complete as far as libs is concerned.
    - Remove deprecated things?
    - stdarch: Fixing https://github.com/rust-lang/stdarch/issues/248 might need an edition change
- `libs-impl` as `libs` subteam
  (Already discussed before. Need to work out the details. (As an rfc/mcp/some document?))
- [Open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg)
- Triage
- Anything else?

## Triage

### FCPs

12 open T-libs FCPs:
<details><summary><a href="https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AT-libs+label%3Aproposed-final-comment-period">4 <code>rust-lang/rfcs</code> FCPs</a></summary>

  - [[close 2944](https://github.com/rust-lang/rfcs/issues/2944#issuecomment-714795934)] *RFC: add the Freeze trait to libcore/libstd* - (2 checkboxes left)
  - [[merge 2580](https://github.com/rust-lang/rfcs/issues/2580#issuecomment-722398370)] *RFC: Pointer metadata &amp; VTable* - (1 checkboxes left)
  - [[close 2708](https://github.com/rust-lang/rfcs/issues/2708#issuecomment-724941427)] *Generic Pointer to Field* - (3 checkboxes left)
  - [[merge 2996](https://github.com/rust-lang/rfcs/issues/2996#issuecomment-747664240)] *adds async stream rfc* - (5 checkboxes left)
</details>
<details><summary><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-libs+label%3Aproposed-final-comment-period">8 <code>rust-lang/rust</code> FCPs</a></summary>

  - [[close 80595](https://github.com/rust-lang/rust/issues/80595#issuecomment-753374897)] *\`impl PartialEq&lt;Punct&gt; for char\`; symmetry for #78636* - (5 checkboxes left)
  - [[merge 80011](https://github.com/rust-lang/rust/issues/80011#issuecomment-744061248)] *Stabilize \`peekable\_next\_if\`* - (4 checkboxes left)
  - [[merge 79805](https://github.com/rust-lang/rust/issues/79805#issuecomment-740167822)] *Rename Iterator::fold\_first to reduce and stabilize it* - (3 checkboxes left)
  - [[merge 80279](https://github.com/rust-lang/rust/issues/80279#issuecomment-751298009)] *Implement missing \`AsMut&lt;str&gt;\` for \`str\`* - (3 checkboxes left)
  - [[merge 80053](https://github.com/rust-lang/rust/issues/80053#issuecomment-746749439)] *stabilise \`cargo test \-\- \-\-include\-ignored\`* - (3 checkboxes left)
  - [[merge 79285](https://github.com/rust-lang/rust/issues/79285#issuecomment-739437474)] *Stabilize Arc::{increment,decrement}\_strong\_count* - (0 checkboxes left)
    Blocked on an open concern.
  - [[merge 80470](https://github.com/rust-lang/rust/issues/80470#issuecomment-752521366)] *Stabilize by\-value \`\[T; N\]\` iterator \`core::array::IntoIter\`* - (3 checkboxes left)
  - [[merge 70904](https://github.com/rust-lang/rust/issues/70904#issuecomment-752648012)] *Stabilize \`Seek::stream\_position\` (feature \`seek\_convenience\`)* - (3 checkboxes left)
</details>
<p></p>

[Amanieu (1)](https://rfcbot.rs/fcp/Amanieu), [BurntSushi (6)](https://rfcbot.rs/fcp/BurntSushi), [KodrAus (8)](https://rfcbot.rs/fcp/KodrAus), [dtolnay (1)](https://rfcbot.rs/fcp/dtolnay), [m-ou-se (2)](https://rfcbot.rs/fcp/m-ou-se), [sfackler (6)](https://rfcbot.rs/fcp/sfackler), [withoutboats (11)](https://rfcbot.rs/fcp/withoutboats)

### Nominated

- [1 `rust-lang/rfcs` items](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AT-libs+label%3AI-nominated)
  - [[2979](https://github.com/rust-lang/rfcs/pull/2979)] *\[RFC\]: Libs Team Governance*
- [7 `rust-lang/rust` items](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-libs+label%3AI-nominated)
  - [[66481](https://github.com/rust-lang/rust/issues/66481)] *Context and Waker might be accidentally \`Sync\`*
    - Waiting on boats.
  - [[79434](https://github.com/rust-lang/rust/pull/79434)] *Add some convenience methods for locks.*
    Would fit better on a non-poisoning interface. Wait for that?
    - Poisoning behaviour unclear. `Mutex::unlock` might be useful. Maybe even lint for `drop(mutex_guard)` (in 2021?).
    - No `with`, `try_with`, not worth it.
    - Would we want it on a non-poisoning mutex?
        - Maybe? 
        - https://github.com/Amanieu/parking_lot/issues/216
  - [[79849](https://github.com/rust-lang/rust/pull/79849)] *Clarify docs regarding sleep of zero duration*
    - POSIX says that sleep 0 does nothing
    - Maybe something like https://doc.rust-lang.org/stable/std/time/struct.SystemTime.html#underlying-system-calls
  - [[79965](https://github.com/rust-lang/rust/pull/79965)] *More ErrorKinds for common Unix errnos*
    - Seems okay, but verify that it works for Windows as well. Maybe some of them need a less-unixy and more generic name.
    - Breaking matching on `Other` is okay.
  - [[80158](https://github.com/rust-lang/rust/issues/80158)] *MaybeUninit requires T: Sized but it should not*
    Already discussed in language team meeting yesterday.
  - [[80303](https://github.com/rust-lang/rust/issues/80303)] *VecDeque's Hash::hash implementation is incorrect*
    - Either fix VecDeque::hash, or ~~change requirements on Hash::hash_slice~~, or add a new Hash::hash_part_of_slice?
    - Not changing Hash means that collections like VecDeque cannot use hash_slice at all, potentially missing out on optimization. E.g. what if you want to hash a file, while reading in blocks?
    - ~~Changing requirements on Hash::hash_slice would be breaking. It'd start hashing `([], [1])` and `([1], [])` the same.~~ *Post-meeting edit: This is not true.*
    - So VecDeque::hash is broken, regardless. *Post-meeting edit: So what about this conclusion?*
    - A new Hash::hash_part_of_slice is a separate issue.
  - [[80505](https://github.com/rust-lang/rust/pull/80505)] *Ignore vtables in {Rc, Arc, Weak}::ptr\_eq*
    - Docs say: `Returns true if the two Rcs point to the same allocation`, which agrees with this change.

### Waiting on team

- [0 `rust-lang/rfcs` items](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AT-libs+label%3AS-waiting-on-team)
- [6 `rust-lang/rust` items](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-libs+label%3AS-waiting-on-team)
  - [[71780](https://github.com/rust-lang/rust/pull/71780)] *Implement String::remove\_matches*
  - [[72981](https://github.com/rust-lang/rust/pull/72981)] *Stabilize the backtrace feature.*
    FCP finished. Should be merged?
  - [[75180](https://github.com/rust-lang/rust/pull/75180)] *Implement Error for &(impl Error)*
    FCP finished. Should be merged?
  - [[75490](https://github.com/rust-lang/rust/pull/75490)] *Add \`\[T; N\]::as\_ref\_elements\` and \`\[T; N\]::as\_mut\_elements\`*
  - [[76901](https://github.com/rust-lang/rust/pull/76901)] *Implement RFC 2500 Needle API (Part 1)*
  - [[77326](https://github.com/rust-lang/rust/pull/77326)] *Stabilize \`Option::unwrap\_none\` and \`Option::expect\_none\`*

### Needs decision

- [14 `rust-lang/rust` items](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-libs+label%3AI-needs-decision)
  - [[21319](https://github.com/rust-lang/rust/issues/21319)] *Consider making std::thread::Builder reusable*
  - [[25053](https://github.com/rust-lang/rust/issues/25053)] *UnsafeCell should implement the Copy trait*
  - [[26951](https://github.com/rust-lang/rust/issues/26951)] *Abort on some large allocation requests, Panic on other*
  - [[29494](https://github.com/rust-lang/rust/issues/29494)] *Command does not escape arguments as expected on windows*
  - [[37868](https://github.com/rust-lang/rust/issues/37868)] *std::process::Command's current\_dir behaves differently on Unix and Windows, with respect to relative exe paths*
  - [[39081](https://github.com/rust-lang/rust/issues/39081)] *\`std::env::temp\_dir\` should return env var XDG\_RUNTIME\_DIR under Linux if declared*
  - [[39186](https://github.com/rust-lang/rust/issues/39186)] *Document that std::os::unix::process::CommandExt.uid() triggers setgroups(0,0)*
  - [[42412](https://github.com/rust-lang/rust/issues/42412)] *Incorporate @raphlinus' container cheat sheet into the std::collections module docs*
  - [[42951](https://github.com/rust-lang/rust/issues/42951)] *Spec request. Hasher: is write\_u32 eqivalent to 4 calls of write\_u8?*
  - [[56889](https://github.com/rust-lang/rust/issues/56889)] *Write::write\_all erroring when encountering Ok(0) interacts poorly with the contract of Write::write*
  - [[59878](https://github.com/rust-lang/rust/issues/59878)] *Box\<\[T\]\> should have an IntoIter implementation.*
  - [[60880](https://github.com/rust-lang/rust/issues/60880)] *Should Thumb bugs get increased visibility, e.g. Tier 1 status?*
  - [[62726](https://github.com/rust-lang/rust/issues/62726)] *Tracking issue for io\_slice\_advance*
  - [[79490](https://github.com/rust-lang/rust/issues/79490)] *Whether floating point value Display should adhere to IEEE standard?*

## Actions

- [x] Reply to all issues/PRs discussed in this meeting, or add them to the [open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg).

