# 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 & 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<Punct> 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<str>\` 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).