# Libs-API Meeting 2022-02-02
###### tags: `Libs Meetings` `Minutes`
**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Jane, Josh, David, Mara, Mark, The 8472
## Agenda
- [Open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg)
- Triage
- Anything else?
## Triage
### FCPs
8 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* - (4 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">7 <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 86845](https://github.com/rust-lang/rust/issues/86845#issuecomment-950843091)] *Tracking Issue for owned locked stdio handles* - (4 checkboxes left)
- [[merge 90291](https://github.com/rust-lang/rust/issues/90291#issuecomment-955599591)] *Loosen the bound on the Debug implementation of Weak.* - (2 checkboxes left)
- [[merge 80697](https://github.com/rust-lang/rust/issues/80697#issuecomment-1022585839)] *Tracking Issue for const\_intrinsic\_copy* - (1 checkboxes left)
- [[merge 92663](https://github.com/rust-lang/rust/issues/92663#issuecomment-1023878238)] *Implement \`Write for Cursor\<\[u8; N\]\>\`, plus \`A: Allocator\` cursor support* - (3 checkboxes left)
- [[merge 93263](https://github.com/rust-lang/rust/issues/93263#issuecomment-1023928386)] *Consistently present absent stdio handles on Windows as NULL handles.* - (4 checkboxes left)
- [[merge 91789](https://github.com/rust-lang/rust/issues/91789#issuecomment-1026130086)] *Tracking Issue for try\_reserve method on more containers* - (5 checkboxes left)
</details>
<p></p>
[Amanieu (2)](https://rfcbot.rs/fcp/Amanieu), [BurntSushi (8)](https://rfcbot.rs/fcp/BurntSushi), [yaahc (3)](https://rfcbot.rs/fcp/yaahc), [joshtriplett (4)](https://rfcbot.rs/fcp/joshtriplett), [dtolnay (3)](https://rfcbot.rs/fcp/dtolnay), [m-ou-se (4)](https://rfcbot.rs/fcp/m-ou-se)
### Critical
- [1 `rust-lang/rust` `T-libs-api` `P-critical` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:P-critical+is:open)
- [[93378](https://github.com/rust-lang/rust/issues/93378)] `P-critical` *Named format arguments introduce implicit positional arguments*
- Backport the fix? Seems good.
- Backport to stable? Probably not worth it. Not worth the effort on our side, but also not on the side of the users who will have to upgrade to a new point release.
### Nominated
- [5 `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)
- [[43301](https://github.com/rust-lang/rust/issues/43301)] *Tracking issue for RFC 1937: \`?\` in \`main\`*
- Termination trait stabilization update
- Naming discussion (leaning towards keeping existing name rather than bikeshedding further)
- Target portability discussion
Leaning towards just supporting u8, and maybe having target-specific methods for other things
- Proposal: Jane to write PR for `ExitCode::from(some_u8)` and changing `Termination` to use `ExitCode`; we can r+ that and then FCP the stabilization of `Termination`.
- [[91589](https://github.com/rust-lang/rust/pull/91589)] *impl \`Arc::unwrap\_or\_clone\`*
- Might be interesting to have a more generic `unwrap_or`.
- Implementation could be more efficient.
- [[92472](https://github.com/rust-lang/rust/pull/92472)] *\[experiment\] proc\-macro: Stop wrapping \`ident\` matchers into groups*
- Remove the invisible fake delimiters (`Delimiter::None`) around identifiers. (They're necessary for expressions etc., but not identifiers.)
- We could always include those invisible delimiters if necessary for multi-token identifiers, if we have those in the future
- FCP with both teams?
- A future change could maybe do this for literally all none-delimited groups with just one token. But let's keep the scope small for now.
- [[93397](https://github.com/rust-lang/rust/pull/93397)] *Add \`\[f32\]::sort\_floats\` and \`\[f64\]::sort\_floats\`*
- Discussion on zulip.
- Call it just `.sort()` or `.sort_float()` or ..?
- How common is it to just sort floats, rather than some float property/field of some struct?
- E.g. statistics. Sorting measurements.
- Alternative is a diagnostic that suggests `.sort_by(...)` when doing `.sort()` on floats.
- Return the subslice of the non-NaNs?
- No consensus now.
- [[93563](https://github.com/rust-lang/rust/pull/93563)] *Merge crossbeam\-channel into \`std::sync::mpsc\`*
- Doesn't change the public API. Fixes a bug by replacing the implementation.
- Josh: Prefer deprecating mpsc, since there's a lot of features that can be added (mpmc, and async sender/receiver support), that we can better leave to the crate ecosystem.
- Jane: Pushing people towards external crates is good, but also a pain point. If we do that, then we should talk about how to guide people to those crates.
- Mark: +1
- Josh: +1
- Mara: Deprecate it, but still accept this to fix the bug?
- Josh: +1
- Mara: This PR doesn't look too complicated, and not too hard to maintain, at first sight.
- Maybe a fuller-featured thing can be an official rust-lang crate
- (Getting a bit off-topic:)
- Maybe we can have some semi-official recommendations for community crates.
- Maybe crates.io can allow labeling crates as 'just an experiment' or 'committed for at least a year' etc.
### Waiting on team
- [2 `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)
- [[81642](https://github.com/rust-lang/rust/pull/81642)] *Automatically implement AsRepr and allow deriving FromRepr for fieldless enums*
- Waiting on another team.
- [[91546](https://github.com/rust-lang/rust/pull/91546)] *Implement additional \`split\_inclusive\` variants for slices*
- Are all of them useful, or is this just overgeneralizing?
- Let's repeat what BurntSushi already said on Zulip: We care more about actual use cases, rather than filling out the full matrix.
- Maybe we can add some .next_including_..() next to .next(), to add this flexibility without adding so many types and methods.
### 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)
- [[72505](https://github.com/rust-lang/rust/issues/72505)] *Tracking issue for \`#!\[feature(const\_float\_classify)\]\`*
- [[26350](https://github.com/rust-lang/rust/issues/26350)] *Clarify story on libm bindings*
- [[29553](https://github.com/rust-lang/rust/issues/29553)] *Tracking issue for #\[bench\] and benchmarking support*
- [[41263](https://github.com/rust-lang/rust/issues/41263)] *Tracking issue for \`ToOwned::clone\_into\` (\`toowned\_clone\_into\`)*
- [[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)_