---
# System prepended metadata

title: Libs-API Meeting 2024-09-03
tags: [Minutes, Libs Meetings]

---

# Libs-API Meeting 2024-09-03

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

**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, David, Mara, Chris Denton, Jubilee, Urgau

## Agenda

- Triage
- Anything else?

## Triage

### FCPs

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

  - merge rust.tf/80437 *Tracking Issue for \`box\_into\_inner\`* - (1 checkboxes left)
  - merge rust.tf/106418 *Implement \`PartialOrd\` and \`Ord\` for \`Discriminant\`* - (2 checkboxes left)
  - merge rust.tf/123723 *Make \`std::os::darwin\` public* - (3 checkboxes left)
  - merge rust.tf/86918 *Tracking Issue for \`pin\_deref\_mut\`* - (3 checkboxes left)
  - merge rust.tf/120141 *Tracking Issue for enum access in offset\_of* - (6 checkboxes left)
  - merge rust.tf/129238 *Stabilize \`Ipv6Addr::is\_unique\_local\` and \`Ipv6Addr::is\_unicast\_link\_local\`* - (3 checkboxes left)
  - merge rust.tf/111735 *Tracking Issue for \`BufRead::skip\_until\`* - (3 checkboxes left)

[pnkfelix (1)](https://rfcbot.rs/fcp/pnkfelix), [nikomatsakis (2)](https://rfcbot.rs/fcp/nikomatsakis), [m-ou-se (4)](https://rfcbot.rs/fcp/m-ou-se), [dtolnay (1)](https://rfcbot.rs/fcp/dtolnay), [joshtriplett (5)](https://rfcbot.rs/fcp/joshtriplett), [tmandry (1)](https://rfcbot.rs/fcp/tmandry), [scottmcm (2)](https://rfcbot.rs/fcp/scottmcm), [BurntSushi (2)](https://rfcbot.rs/fcp/BurntSushi), [Amanieu (3)](https://rfcbot.rs/fcp/Amanieu)

### (nominated) rust.tf/127343 *regression: type annotations needed for Box\<\_\>*

> Josh: Happy to help write draft text, if someone else could lead the process of getting the post approved by any teams.

> Jubilee: I'll make sure that coordination happens.

> This issue can be closed once there is a blog post

Mara: ehuss is working on a blog post

### (nominated) rust.tf/127633 *\[library/std/src/process.rs\] \`PartialEq\` & \`Eq\` for \`ExitCode\`*

Amanieu: use case in comment: https://github.com/rust-lang/rust/pull/127633#issuecomment-2224254196

David: Seems fine to me

Josh: +1

Mara: +1

Amanieu to start fcp.

The 8472: Did we check why the docs currently say that we don't provide this functionality?

Original preference to keep the struct opaque:

- https://github.com/rust-lang/rust/pull/93840#issuecomment-1045160700

- https://github.com/rust-lang/rust/pull/93840#issuecomment-1035079613

Consensus: begin FCP

### (nominated) rust.tf/129550 *Add boxed\_str.as\_str()*

Amanieu: Seems fine.

Mara: Shouldn't be insta-stable.

David: Alternative is to add as_str to str itself. Then it works through Deref on Box and Arc etc.

Josh: I like that

David: Will also work on `&Box<str>` etc.

Consensus: have str::as_str instead.

### (nominated) rust.tf/129561 *New panics from sort detecting Ord/PartialOrd violations* + rust.tf/129661 *Tracking issue for release notes of #124032: Replace sort implementations*

Discussed last week. Draft release notes written.

### (waiting on team) rust.tf/119550 *Rename \`AsyncIterator\` back to \`Stream\`, introduce an AFIT\-based \`AsyncIterator\` trait*

Waiting on WG-async

### (new change proposal) rust.tf/libs435 *Adding position to Enumerate*

We have `offset` on CharIndices: https://internals.rust-lang.org/t/rust-lacks-enumerated-position-to-get-the-current-count/21449/8

Mara: Looks fine to me.

Amanieu: how about `next_index`?

Josh: sounds great.

Mara: then it's unclear if it advances the iterator or not.

Jubilee: Just Peek?

Mara: This is offset, not next/peek index, because the next item might not exist.

Mara: I feel like we should be exposing all information we store in the iterator adapters. We're just discussing naming here.

Amanieu: I don't think we should add this for a generic iterator like Enumerate. Fine for specific things like CharIndices.

David: Agree with Mara, expose as much as possible from the adapters, with reasonable names.

The 8472: For other adapters, we optimized them throwing away information. Exposing that would have prevented the optimization.

David: does this fall into that category?

Amanieu: Close because there is no use case?

Consensus: Ask for example/use case (that does not easily work with `.enumerate()`); not close yet.

### (new change proposal) rust.tf/libs422 *Additional BufReader API for incremental buffer filling*

Amanieu to reply

### https://github.com/rust-lang/libs-team/issues/436

Discussed briefly, not portable, users will want to know implementation details

Amanieu to reply

### (new change proposal) rust.tf/libs421 *Implement \`IntoRawX\`, \`FromRawX\` and \`AsRawX\` for \`RawHandler\` and \`RawSocket\`*

Reject, use `AsFd` instead.

Amanieu to reply

### (new change proposal) rust.tf/libs420 *Add basic tempfile API to stdlib*

### (new change proposal) rust.tf/libs419 *Enable specialisation of \`std::io::copy\` for non stdlib types*

Better to have a UNIX-specific API that takes `AsFd`

The8472 to reply

### (new change proposal) rust.tf/libs418 *Box/Vec/slice convenience NonNull methods*

Generally positive response, some discussion about method naming (e.g. `from_parts`/`into_parts` without including `non_null` in the name).

Some complications for the reference-taking ones exist.

### (new change proposal) rust.tf/libs416 *Add new API for named fifo*

Same conclusion as last time: prefer a single `mkfifo` function then treat it as a `File`.

### (new change proposal) rust.tf/libs415 *Add a method for constructing a \`Waker\` from a \`Fn()\`*

Accept

### (new change proposal) rust.tf/libs414 *Add \`slice::{trim, trim\_start, trim\_end}\` (+ mutable counterparts)*

Rename to `trim_matches`, take `SlicePattern`

### (new change proposal) rust.tf/libs406 *Make \`proc\_macro\` available outside procedural macro generation*

Make this a project goal. Help wanted.

### (stalled change proposal) rust.tf/libs327 *Add Wrapping/Saturating::from\_mut reference conversions*

Accept

### (stalled change proposal) rust.tf/libs296 *ACP: Designing an alternative \`FromStr\`*

### (stalled change proposal) rust.tf/libs210 *Add associated consts to f32, f64 for mathematical constants*

The 8472: ping mara

### (stalled change proposal) rust.tf/libs176 *\`Peek\` trait for peekable iterators*

### (stalled change proposal) rust.tf/libs131 *Add \`std::fs::rename\_noreplace\`*

### (stalled change proposal) rust.tf/libs148 *Expose raw std{in,out,err}*

### (stalled change proposal) rust.tf/libs311 *ACP: Pattern methods for \`OsStr\` without \`OsStr\` patterns*

### (stalled change proposal) rust.tf/libs181 *\`Cow::map\_borrowed\`, \`Cow::map\_owned\`, and \`Cow::map\`*

### (stalled change proposal) rust.tf/libs67 *Replace \`feature(layout\_for\_ptr)\` with \`feature(layout\_for\_meta)\`*

### (stalled change proposal) rust.tf/libs298 *Constructive/Destructive Interference Size Padding*


_Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_