---
# System prepended metadata

title: Libs-API Meeting 2023-07-04
tags: [Minutes, Libs Meetings]

---


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