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