**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, David, Mara, The 8472
## Agenda
- Triage
- Anything else?
## Triage
### FCPs
11 rust-lang/rust T-libs-api FCPs
- merge rust.tf/88581 *Tracking Issue for \`int\_roundings\`* - (1 checkboxes left)
- merge rust.tf/80437 *Tracking Issue for \`box\_into\_inner\`* - (1 checkboxes left)
- merge rust.tf/91946 *Tracking Issue for \`io::Error::other\`* - (3 checkboxes left)
- merge rust.tf/98461 *Document lack of panic safety guarantees of \`Clone::clone\_from\`* - (0 checkboxes left)
- merge rust.tf/52331 *Correcting Path::components on Redox* - (5 checkboxes left)
- merge rust.tf/82901 *Tracking Issue for \`Option::get\_or\_insert\_default\`* - (2 checkboxes left)
- merge rust.tf/83871 *Tracking Issue for CharIndices::offset function* - (4 checkboxes left)
- merge rust.tf/99262 *Tracking Issue for \`io\_error\_downcast\`* - (4 checkboxes left)
- merge rust.tf/106655 *Tracking Issue for \`#!\[feature(offset\_of)\]\`* - (0 checkboxes left)
- merge rust.tf/107587 *Mark \`std\` integral modules as deprecated (\`std::u32\`, \`std::i16\`, etc.)* - (4 checkboxes left)
- merge rust.tf/100455 *Implement RefUnwindSafe for Backtrace* - (3 checkboxes left)
[Amanieu (4)](https://rfcbot.rs/fcp/Amanieu), [yaahc (4)](https://rfcbot.rs/fcp/yaahc), [joshtriplett (4)](https://rfcbot.rs/fcp/joshtriplett), [dtolnay (3)](https://rfcbot.rs/fcp/dtolnay), [m-ou-se (5)](https://rfcbot.rs/fcp/m-ou-se), [BurntSushi (7)](https://rfcbot.rs/fcp/BurntSushi)
### (nominated) rust.tf/73014 *Tracking issue for std::default::default()*
FCP close in progress.
### (nominated) rust.tf/98704 *Implement From\<OwnedFd/Handle\> for ChildStdin/out/err object*
Mara to review and start FCP if it looks okay.
### (nominated) rust.tf/112858 *Update Android system definitions and add riscv\-linux\-android as tier 3 target*
FCP merge in progress: https://github.com/rust-lang/rust/pull/113130
### (waiting on team) rust.tf/100455 *Implement RefUnwindSafe for Backtrace*
FCP started.
### (waiting on team) rust.tf/107587 *Mark \`std\` integral modules as deprecated (\`std::u32\`, \`std::i16\`, etc.)*
Snoozed.
### (waiting on team) rust.tf/111884 *Clarify intended use case for From/TryFrom/Into/TryInto*
Waiting on author. Relabeled.
### (new change proposal) rust.tf/libs235 *ACP: Extended logic for IP networks*
{forgot to take notes about most of the discussion, sorry}
leading_zeros can be confusing. how about .to_bits().leading_zeros()? (and have from_bits too)
BitAnd and BitOr and Not and BITS and Step seems fine.
Mara to reply.
### (new change proposal) rust.tf/libs236 *Implement \`PartialEq\`, \`Eq\`, \`PartialOrd\`, \`Ord\`, \`Hash\` for unix \`SocketAddr\`*
Mara: With this ACP, having a `HashMap<SocketAddr, ..>` will probably result in a map with one 'unnamed' entry, which is probably a bug. Seems like SocketAddr is like an Option, and being forced to handle the None case is good.
..: Is that common though?
Amanieu: If you're using sockets you're know which type you're using, so the risk of mixing different kinds of addresses is not a problem.
Mara: Current way of doing this is using .as_pathname and .as_abstract_name. those give options to unwrap/handle.
Amanieu: but those return references into the SocketAddr, so that's annoying to work with.
Amanieu: So I'm in favour of this ACP.
Mara: Alternative is to expose .as_bytes().
Amanieu: That still returns a reference.
Amanieu: This ACP is not ideal, but it seems to be the best option.
The 8472: The newtype approach is more resilient. (Newtype wrapper that calls .as_pathname in its trait impls.)
Mara: Starting to agree with amanieu. Seeing this unix socketaddr as 'just a bag of bytes' seems reasonable. (Still in favor of also adding as_bytes.)
Mara: Ipv4Address also has special cases (255.255.255.255?) that we don't handle specially. So maybe handling unix socket addr in the same way is fine.
The 8472: That's not quite the same but sure
Asked for a PR+FCP.
### (new change proposal) rust.tf/libs237 *thread::sleep\_until, wait until a deadline is reached*
The 8472: I think this needs a clock source, because we're inconsistent about whether Instant includes suspended time. Also Instant vs SystemTime.
..: Instant is attached to a specific clock though.
The 8472: Yes, but we might have more types in the future, for specific clocks.
Mara: So it should be `sleep_until<T: Timestamp>(T)` or something like that?
The 8472: Yes.
Amanieu: I somewhat agree, but we can leave this as a concern for later (before stabilization).
Mara: Do we already have any 'until' funciton, on condvar or something?
Amanieu: Nope
The 8472: Clock sources are a mess.
Mara: If we also want park_until and Condvar::wait_until, we can't accept more than Instant and SystemTime, because of limits of e.g. futex() on linux.
David: Is waiting on SystemTime supported everywhere?
Amanieu: No
David: So, can we provide sleep_until for anything other than Instant, and make it work cross-platform?
Seems like no.
Conclusion: ACP accepted, but whether it can be generic over Instant+SystemTime+.. should be added as an unresolved question.
(Amanieu: Oh, Windows does support SystemTime, it seems.)
### (new change proposal) rust.tf/libs238 *ACP: \`NonNanFNN\` and \`FiniteFNN\` float wrappers*
### (new change proposal) rust.tf/libs244 *add wrapping\_offset\_from*
### (stalled change proposal) rust.tf/libs139 *Add back \`BorrowedBuf::filled\_mut\`*
### (stalled change proposal) rust.tf/libs104 *std::io: vectored reads with uninitialized memory (Read::read\_buf\_vec)*
### (stalled change proposal) rust.tf/libs128 *Add \`inner\` and \`into\_inner\` methods to iterator adapters*
### (stalled change proposal) rust.tf/libs124 *Integrate \`Error\` trait with panic interfaces*
### (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)_