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