# Libs-API Meeting 2023-06-13 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr **Attendees**: Amanieu, David, Josh, Mara, Chris Denton, The 8472, Urgau ## Agenda - Triage - Anything else? ## Triage ### FCPs 12 rust-lang/rust T-libs-api FCPs [joshtriplett (4)](https://rfcbot.rs/fcp/joshtriplett), [Amanieu (4)](https://rfcbot.rs/fcp/Amanieu), [BurntSushi (6)](https://rfcbot.rs/fcp/BurntSushi), [m-ou-se (6)](https://rfcbot.rs/fcp/m-ou-se), [dtolnay (4)](https://rfcbot.rs/fcp/dtolnay) ### (nominated) rust.tf/112423 *std::process:\:Child::kill should not fail if process is terminated on Windows* Behaviour different on Unix and Windows. What do we want to do in std? The error returned on Unix doesn't come from the kernel, but comes from std. (It knows it already wait()'ed for the process.) currently: - Unix kill before wait(): no error - Unix kill after wait(): error - Windows kill after terminate: error Options: - Always return success if the child has already exited. - .. Are there any cases where you'd want to handle this error differently than success? For those cases, you can still call .wait() to check the result. InvalidInput is only returned today on unix, and only when calling kill() after wait() or a succesful try_wait(), which is.. an odd situation. Let's do an FCP for removing the error on all platforms. ### (waiting on team) rust.tf/94748 *Add \`Read\`, \`Write\` and \`Seek\` impls for \`Arc\<File\>\` where appropriate* There was an earlier (now closed) PR for `Arc<T: Write>` (etc.), but this one is just for `Arc<File>`. Seems fine. FCP? ### (waiting on team) rust.tf/107587 *Mark \`std\` integral modules as deprecated (\`std::u32\`, \`std::i16\`, etc.)* Discussed last time. FCP started, but no checkboxes checked so far. Not a lot of strong opinions either way. David: Perhaps we can emit a machine applicable lint without using the word 'deprecation'. Just a hint 'did you know you can use ..?'. Mara: Agreed. Deprecating mem::uninitialized etc. is about things that are broken. But this is not broken. So this is more about e.g. removing unnecessary & or (). Useful tip, but nothing is broken. David to comment on this. ### (waiting on team) rust.tf/111347 *Add \`Future::map\`* David: This seems fine, but let's not make the trait as big as Iterator, that one went too far. Let's make sure this doesn't break the ecosystem. ### ACP: impl Into\<T\> for Infallible where T: Error rust.tf/libs233 This doesn't seem to resolve the overlapping issue of `Into<Infallible> for Infallible`. (And if we solve that issue, then the `T: Error` bound isn't very useful.) This requires compiler support: https://github.com/rust-lang/rust/issues/64631 Let's aim for this without the bound. Some ongoing discussion here on `!`: https://github.com/rust-lang/rust/issues/35121 Amanieu to reply. ### (new change proposal) rust.tf/libs239 *ACP: Alter \`Display\` for \`Ipv6Addr\` for IPv4\-compatible addresses* We print ipv4-compatible ipv6 addresses as `::a.b.c.d` or `::ffff:a.b.c.d`. The first one is deprecated, the second one is not. Remove the first one? Removing the deprecated syntax seems fine. Josh to reply. ### (new change proposal) rust.tf/libs238 *ACP: \`NonNanFNN\` and \`FiniteFNN\` float wrappers* Mara: Should this be in the standard library? It needs the unstable attributes for Option/enum optimization. Mara: It'd be cool if *all* NaN representations would be interpreted as `Option<NonNan>::None`, but that's not what would happen if we did this with our current tools. Josh: It'd be cool if this could be used for NaN-boxing other values, but I don't think we expose enough stable language features to make that possible. David: Having the complement of this (a type for all `NaN` values) could be useful in combination with a lang feature to make `enum { A(NonNan), B(NaN) }` be identical in representation to a float. Mara: This doesn't seem to be solving what it perhaps should be solving. David: Agreed. Mara to respond with some thoughts on what this should (maybe) be solving. --- Not discussed this meeting: ### (new change proposal) rust.tf/libs235 *ACP: Extended logic for IP networks* ### (new change proposal) rust.tf/libs236 *Implement \`PartialEq\`, \`Eq\`, \`PartialOrd\`, \`Ord\`, \`Hash\` for unix \`SocketAddr\`* ### (new change proposal) rust.tf/libs237 *thread::sleep\_until, wait until a deadline is reached* ### (stalled change proposal) rust.tf/libs116 *Lossy UTF8 conversion of owned types (\`Vec::\<u8\>::into\_utf8\_lossy\`).* ### (stalled change proposal) rust.tf/libs124 *Integrate \`Error\` trait with panic interfaces* ### (stalled change proposal) rust.tf/libs119 *ACP: Add a constant for the golden ratio (phi) to the floating point types* ### (stalled change proposal) rust.tf/libs115 *ACP: Range::cmp\_scalar; comparison (less/equal/greater) to a primitive of the Range* ### (stalled change proposal) rust.tf/libs111 *Restructure ptr\_metadata to minimal support* _Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_