---
# System prepended metadata

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

---

# Libs-API Meeting 2023-06-06

###### tags: `Libs Meetings` `Minutes`

**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, The 8472, Mara, Urgau

## Agenda

- Triage
- Anything else?
    - Someone put a interesting comment for midpoint: https://github.com/rust-lang/rust/issues/110840#issuecomment-1563774903

## Triage

### FCPs

10 rust-lang/rust T-libs-api FCPs

[m-ou-se (5)](https://rfcbot.rs/fcp/m-ou-se), [Amanieu (3)](https://rfcbot.rs/fcp/Amanieu), [dtolnay (4)](https://rfcbot.rs/fcp/dtolnay), [BurntSushi (5)](https://rfcbot.rs/fcp/BurntSushi), [joshtriplett (3)](https://rfcbot.rs/fcp/joshtriplett)


### (waiting on team) rust.tf/107619 *Specify behavior of HashSet::insert*

FCP started. Removed label.

### (waiting on team) rust.tf/98202 *Implement \`TryFrom\<&OsStr\>\` for \`&str\`*

FCP started. Removed label.

### (waiting on team) rust.tf/99339 *Make BinaryHeap parametric over Allocator*

Reassigned to Amanieu.

### (waiting on team) rust.tf/107587 *Mark \`std\` integral modules as deprecated (\`std::u32\`, \`std::i16\`, etc.)*

doc(hidden) isn't the right tool. a doc(noindex) or something could be useful.

E.g. `use std::i32::MAX;` is used in some places: https://github.com/search?type=code&q=%22use+std%3A%3Ai32%3A%3AMAX%3B%22
Might be fine to just steer towards `i32::MAX` without a `use` for just `MAX`.
  If a shorthand is needed people can do `const MAX = i32::MAX;`

Two questions:

- How should rustdoc present these modules?

- Should rustc warn for using these modules?
  - Can cargo-fix handle this?

Maybe first deprecate the `std::i32::*` consts and not yet deprecate the `std::i32` module itself.

`#[deprecated]` now has a `suggestion =` feature to allow for a machine applicable suggestion.

Deprecation is often used to push people away from bad things, but this isn't bad, just a cleanup. So is deprecation worth it? Do we need something lighter?

FCP?

Amanieu to reply.

Related: ACP 210 (float math consts)

Importing `use std::f64::PI;` is common, but that wouldn't work with an associated constant.

### (waiting on team) rust.tf/110738 *Stabilize \`ThreadId::as\_u64\`*

Waiting on use cases.

### (waiting on team) rust.tf/111074 *Relax implicit \`T: Sized\` bounds on \`BufReader\<T\>\`, \`BufWriter\<T\>\` and \`LineWriter\<T\>\`*

FCP started. Removed label.

### (waiting on team) rust.tf/111081 *impl SliceIndex\<str\> for (Bound\<usize\>, Bound\<usize\>)*

FCP started. Removed label.

### (new change proposal) github.com/rust-lang/libs-team/issues/234 *ACP: Add \`Cow::clear\` methods*

Three identically named methods on the same generic type will not work out well.

Seems highly specific? Difference with just assigning `""` or `&[]` is keeping the capacity for the owned types..? Not mentioned as motivation.

This isn't extensible: users can implement their own ToOwned, but with this they can't make Cow::clear() for their own types work.

Amanieu to reply.

### (new change proposal) github.com/rust-lang/libs-team/issues/233 *impl Into\<T\> for Infallible where T: Error*

David (not present) will have opinions.

### (new change proposal) github.com/rust-lang/libs-team/issues/236 *Implement \`PartialEq\` and \`Eq\` for \`SocketAddr\`*

unix::net::SocketAddr stores a libc::sockaddr_un

It gives an error for non-AF_UNIX socketaddr already, so it's always a unix socket addr. (It won't ever store e.g. an IP address.)

https://doc.rust-lang.org/stable/src/std/os/unix/net/addr.rs.html#88-91

Should Unnamed compare equal to Unnamed?

Seems hard to get right.

Alternative: expose as_bytes()?

Needs more discussion on the github thread.

### (new change proposal) github.com/rust-lang/libs-team/issues/232 *Implement PartialOrd\<str\> for String, PartialOrd\<\[T\] for Vec\<T\>*

### (new change proposal) github.com/rust-lang/libs-team/issues/235 *ACP: Extended logic for IP networks*



### (stalled change proposal) github.com/rust-lang/libs-team/issues/116 *Lossy UTF8 conversion of owned types (\`Vec::\<u8\>::into\_utf8\_lossy\`).*

### (stalled change proposal) github.com/rust-lang/libs-team/issues/124 *Integrate \`Error\` trait with panic interfaces*

### (stalled change proposal) github.com/rust-lang/libs-team/issues/119 *ACP: Add a constant for the golden ratio (phi) to the floating point types*

### (stalled change proposal) github.com/rust-lang/libs-team/issues/115 *ACP: Range::cmp\_scalar; comparison (less/equal/greater) to a primitive of the Range*

### (stalled change proposal) github.com/rust-lang/libs-team/issues/111 *Restructure ptr\_metadata to minimal support*
