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