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