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