# Libs-API Meeting 2022-03-16
###### tags: `Libs Meetings` `Minutes`
**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, Jane, Josh Triplett, David, Mara, Urgau
## Agenda
- [Open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg)
- [Libs team wishlist](https://hackmd.io/HPjGPC09RayylxGeaIfTew)
- https://github.com/rust-lang/std-dev-guide/pull/32
- regarding experience reports
- We'd like to be able to be as lightweight here as possible, we all agree there should be a concrete example of someone who wants to use the feature and who has tested it, ideally they should be able to link to where they used it but if they don't have a specific branch that's not a blocker
- don't always require them, but they're always encouraged and helpful, and the libs team reserves the right to ask for one if they feel its necessary
- Triage
- Anything else?
## Triage
### FCPs
19 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 3192](https://github.com/rust-lang/rfcs/issues/3192#issuecomment-1015775980)] *Add provide\_any module to core* - (3 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">17 <code>rust-lang/rust</code> FCPs</a></summary>
- [[merge 89238](https://github.com/rust-lang/rust/issues/89238#issuecomment-927177703)] *deprecate f{32,64}::DIGITS* - (1 checkboxes left)
- [[merge 90291](https://github.com/rust-lang/rust/issues/90291#issuecomment-955599591)] *Loosen the bound on the Debug implementation of Weak.* - (1 checkboxes left)
- [[merge 91789](https://github.com/rust-lang/rust/issues/91789#issuecomment-1026130086)] *Tracking Issue for try\_reserve method on more containers* - (4 checkboxes left)
- [[merge 93840](https://github.com/rust-lang/rust/issues/93840#issuecomment-1034327897)] *Stabilize Termination and ExitCode* - (3 checkboxes left)
- [[merge 88581](https://github.com/rust-lang/rust/issues/88581#issuecomment-1054642132)] *Tracking Issue for \`int\_roundings\`* - (3 checkboxes left)
- [[merge 41263](https://github.com/rust-lang/rust/issues/41263#issuecomment-1057368239)] *Tracking issue for \`ToOwned::clone\_into\` (\`toowned\_clone\_into\`)* - (3 checkboxes left)
- [[merge 89780](https://github.com/rust-lang/rust/issues/89780#issuecomment-1057495167)] *Tracking Issue for poll.ready()?* - (4 checkboxes left)
- [[merge 94530](https://github.com/rust-lang/rust/issues/94530#issuecomment-1059571324)] *Implement Copy, Clone, PartialEq and Eq for core::fmt::Alignment* - (4 checkboxes left)
- [[merge 71499](https://github.com/rust-lang/rust/issues/71499#issuecomment-1062913168)] *Tracking Issue for making ptr offset methods "const fn"* - (3 checkboxes left)
- [[merge 92939](https://github.com/rust-lang/rust/issues/92939#issuecomment-1062923488)] *Tracking Issue for windows\_process\_extensions\_raw\_arg* - (4 checkboxes left)
- [[merge 93044](https://github.com/rust-lang/rust/issues/93044#issuecomment-1062941276)] *Add forwarding impls for Read, Write, Seek to Arc, Rc* - (4 checkboxes left)
- [[merge 94786](https://github.com/rust-lang/rust/issues/94786#issuecomment-1064599953)] *Document NonZeroXxx layout guarantees* - (3 checkboxes left)
- [[merge 92980](https://github.com/rust-lang/rust/issues/92980#issuecomment-1065659273)] *Tracking Issue for const offset\_from (const\_ptr\_offset\_from)* - (6 checkboxes left)
- [[merge 71941](https://github.com/rust-lang/rust/issues/71941#issuecomment-1065939514)] *Tracking Issue for \`NonNull\<\[T\]\>::slice\_from\_raw\_parts\`* - (4 checkboxes left)
- [[merge 94640](https://github.com/rust-lang/rust/issues/94640#issuecomment-1065939867)] *Partially stabilize \`(const\_)slice\_ptr\_len\` feature by stabilizing \`NonNull::len\`* - (4 checkboxes left)
- [[merge 82223](https://github.com/rust-lang/rust/issues/82223#issuecomment-1065947793)] *Tracking Issue for \`Result::into\_ok\_or\_err\` / \`feature(result\_into\_ok\_or\_err)\`* - (5 checkboxes left)
- [[merge 87517](https://github.com/rust-lang/rust/issues/87517#issuecomment-1066980319)] *Tracking Issue for RFC 3107: derive\_default\_enum* - (5 checkboxes left)
</details>
<details><summary><a href="https://github.com/rust-lang/stdarch/issues?q=is%3Aopen+label%3AT-libs-api+label%3Aproposed-final-comment-period">1 <code>rust-lang/stdarch</code> FCPs</a></summary>
- [[merge 1285](https://github.com/rust-lang/stdarch/issues/1285#issuecomment-1054497120)] *Add the rdm target feature to the sqrdmlsh intrinsic.* - (5 checkboxes left)
</details>
<p></p>
[pnkfelix (1)](https://rfcbot.rs/fcp/pnkfelix), [dtolnay (6)](https://rfcbot.rs/fcp/dtolnay), [BurntSushi (17)](https://rfcbot.rs/fcp/BurntSushi), [m-ou-se (8)](https://rfcbot.rs/fcp/m-ou-se), [Amanieu (15)](https://rfcbot.rs/fcp/Amanieu), [cramertj (1)](https://rfcbot.rs/fcp/cramertj), [nikomatsakis (1)](https://rfcbot.rs/fcp/nikomatsakis), [joshtriplett (10)](https://rfcbot.rs/fcp/joshtriplett), [yaahc (10)](https://rfcbot.rs/fcp/yaahc)
### Nominated
- [6 `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)
- [[70436](https://github.com/rust-lang/rust/issues/70436)] *Tracking issue for \`Write::write\_all\_vectored\`*
- Discusson on the issue ongoing. Unlabeled.
- [[72353](https://github.com/rust-lang/rust/issues/72353)] *Adding AtomicF64, AtomicF32 to std::sync::atomic*
- Do hardware support this? CUDA supports it. not much else
- Does LLVM support it? ~~Probably no.~~
- Actually it does. Only add and substract, not min and max etc.
- Only used for amd gpu.
- We can have `fetch_max` etc, but their implementation would just be a compare_exchange loop.
- We could use a generic `Atomic<T>`, removing the need for specific types like this.
- Let's close due to lack of usable platform support. AtomicU32 with to_bits and from_bits gets you the same result on pretty much all architectures.
- (who has the action item to close this?)
- [[81061](https://github.com/rust-lang/rust/issues/81061)] *Tracking Issue for cell\_filter\_map*
- Awkward API. returns a Result with Self in Err. Similar to downcast, which is a bit inconvenient to use.
- Exact same API in parking_lot on MutexGuard, named `try_map`.
- Fcp merge
- [[93709](https://github.com/rust-lang/rust/pull/93709)] *Rename \`first\*\`/\`last\*\` \`BTree{Set,Map}\` methods to \`min\*\`/\`max\*\`*
- ~~Yes, let's do this.~~
- Discussed later: https://hackmd.io/riIRBi3FRGe-i9N8ZWeOZg
- [[94481](https://github.com/rust-lang/rust/pull/94481)] *Add JoinError that fails Span::join when hygiene is different.*
- David: This seems to make the method less useful. Not convinced this PR improves the behaviour.
- For most use cases, it's used for error reporting, where hygiene doesn't matter.
- We could define it's always the hygiene of the first token, or we could leave it unspecified (like for multiple tokens in a single path).
- We can ask for a use case.
- [[94488](https://github.com/rust-lang/rust/pull/94488)] *Document that Display entails ToString and should be lossless and infallible*
- This part is already documented, maybe it should be in other places:
- "That is, a formatting implementation must and may only return an error if the passed-in Formatter returns an error. This is because, contrary to what the function signature might suggest, string formatting is an infallible operation" (https://doc.rust-lang.org/nightly/std/fmt/index.html)
- Errors are an example of where `Display` doesn't include everything (causes etc.)
- We should replicate/link to explanation on when fmt::Error should be returned from all fmt:: traits.
### Waiting on team
- [1 `rust-lang/rust` `T-libs-api` `S-waiting-on-team` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:S-waiting-on-team+is:open)
- [[94026](https://github.com/rust-lang/rust/issues/94026)] *\`Hasher::write\` should clarify its "whole unit" behaviour*
- There's been progress
- There's a PR: https://github.com/rust-lang/rust/pull/94598
### Needs decision
None
### 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)
- [[75638](https://github.com/rust-lang/rust/issues/75638)] *Tracking Issue for Iterator::join*
- [[67521](https://github.com/rust-lang/rust/issues/67521)] *Tracking issue for const \`alloc::Layout\`*
- [[61415](https://github.com/rust-lang/rust/issues/61415)] *Use const generics for array impls*
- [[72505](https://github.com/rust-lang/rust/issues/72505)] *Tracking issue for \`#!\[feature(const\_float\_classify)\]\`*
- [[71213](https://github.com/rust-lang/rust/issues/71213)] *Tracking Issue for \`wasi\_ext\`*
## 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)_