--- date: 2025-01-21 url: https://hackmd.io/gDEjBD5ZRL-iWWDMZ3U5cA --- # Libs-API Meeting 2025-01-21 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr **Attendees**: Amanieu, David, The8472, TC, Eric Holk ## Agenda - Triage - Anything else? ## Triage ### FCPs 20 rust-lang/rust T-libs-api FCPs - merge rust.tf/80437 *Tracking Issue for \`box\_into\_inner\`* - (1 checkboxes left) - merge rust.tf/120287 *Tracking Issue for \`NonZero\*::count\_ones\`* - (3 checkboxes left) - merge rust.tf/106418 *Implement \`PartialOrd\` and \`Ord\` for \`Discriminant\`* - (2 checkboxes left) - merge rust.tf/134016 *Stabilize \`const\_is\_char\_boundary\` and \`const\_str\_split\_at\`.* - (3 checkboxes left) - merge rust.tf/120141 *Tracking Issue for enum access in offset\_of* - (6 checkboxes left) - merge rust.tf/130192 *\[discussion\] \`ErrorKind::InvalidFilename\` from \`io\_error\_more\`* - (3 checkboxes left) - merge rust.tf/129375 *Tracking Issue for unbounded\_shifts* - (3 checkboxes left) - merge rust.tf/127534 *feat(core): impl Step for NonZero\<u\*\>* - (3 checkboxes left) - merge rust.tf/59618 *Tracking issue for HashMap::extract\_if and HashSet::extract\_if* - (3 checkboxes left) - merge rust.tf/130801 *Tracking Issue for \`const\_mut\_cursor\`* - (3 checkboxes left) - merge rust.tf/129041 *Tracking Issue for \`const\_vec\_string\_slice\`* - (3 checkboxes left) - merge rust.tf/97601 *Tracking Issue for map\_many\_mut* - (3 checkboxes left) - merge rust.tf/134340 *Stabilize \`num\_midpoint\_signed\` feature* - (3 checkboxes left) - merge rust.tf/103806 *Tracking Issue for \`string\_extend\_from\_within\`* - (3 checkboxes left) - merge rust.tf/131923 *Derive \`Copy\` and \`Hash\` for \`IntErrorKind\`* - (3 checkboxes left) - merge rust.tf/134995 *Stabilize const\_slice\_flatten* - (3 checkboxes left) - merge rust.tf/127527 *Tracking Issue for \`once\_wait\`* - (3 checkboxes left) - merge rust.tf/128101 *Tracking Issue for \`unsigned\_is\_multiple\_of\`* - (3 checkboxes left) - merge rust.tf/134213 *Stabilize \`naked\_functions\`* - (6 checkboxes left) - merge rust.tf/135536 *Add more impls of PartialEq and PartialOrd for strings* - (4 checkboxes left) [m-ou-se (15)](https://rfcbot.rs/fcp/m-ou-se), [scottmcm (3)](https://rfcbot.rs/fcp/scottmcm), [traviscross (1)](https://rfcbot.rs/fcp/traviscross), [dtolnay (2)](https://rfcbot.rs/fcp/dtolnay), [nikomatsakis (3)](https://rfcbot.rs/fcp/nikomatsakis), [tmandry (1)](https://rfcbot.rs/fcp/tmandry), [BurntSushi (18)](https://rfcbot.rs/fcp/BurntSushi), [Amanieu (9)](https://rfcbot.rs/fcp/Amanieu), [pnkfelix (1)](https://rfcbot.rs/fcp/pnkfelix), [joshtriplett (11)](https://rfcbot.rs/fcp/joshtriplett) ### (nominated) rust.tf/101551 *\[WIP\] Add support for custom allocator for \`String\`* Naively implementing this with a defaulted type parameter such as on Vec is a breaking change (https://github.com/rust-lang/rust/pull/101551#issuecomment-2571273728) Instead, this PR implements `String` as a type alias `type alloc::string::String = alloc::string::string::String<Global>` Amanieu to reply that it looks promising ### (nominated) rust.tf/127292 *Tracking Issue for PathBuf::add\_extension and Path::with\_added\_extension* FCP finished. Should be merged? Panic on path separator in new extension? -- yes `must_use`? -- no, based on `set_extension` there are too many uses that don't bother checking Preserve trailing slash? -- no ### (nominated) rust.tf/127527 *Tracking Issue for \`once\_wait\`* In FCP. Un-nominated. ### (nominated) rust.tf/135141 *std: net: Add function to return the system hostname* `OsString` vs `String`? `OsString` is not quite right either because hostname on Windows can be arbitrary bytes, not necessarily WTF-8 like other OS strings But there is a Windows API that returns hostname as Unicode string, we should just use that: https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-gethostnamew ### (nominated) rust.tf/135634 *stop specializing on \`Copy\`* 8472: this does not solve the unsoundness described in https://github.com/rust-lang/rust/issues/132442#issuecomment-2451398665 David: the Copy impl applying when it isn't supposed to is not a memory unsafety by itself; any consequence of this bug is not scary David: prefer to keep specializing on Copy, and instead change rustc to warn on the Copy impl saying there is no reason to write it with constrained lifetime, please write it using the same generic lifetimes as your corresponding Clone impl TC: Suggest nominating for T-types (and maybe UCG). The 8472 to reply, ping the types team ### (nominated) rust.tf/135672 `P-high` *regression: \`Sign\` is ambiguous* Acceptable breakage ### (waiting on team) rust.tf/133829 *AtomicT::fetch\_update\_infallible* ### (waiting on team) rust.tf/135415 *Add \`File already exists\` error doc to \`hard\_link\` function* In FCP ### (new change proposal) rust.tf/libs524 *Require a LintId for all proc\-macro warnings* Deferred to next week to discuss with Josh ### (new change proposal) rust.tf/libs523 *Add a deterministic constructor for \`RandomState\`* Discussion about whether this would be better as `with_seed` ### (new change proposal) rust.tf/libs522 *Add \`fs::read\_lines\` to simplify getting a \`Vec\<String\>\`* TC to write up counterproposal: `-> io::Result<io::Lines<?>>`, with unresolved issue about whether to wait for a LendingIterator API? `Item = io::Result<&'self str>` ### (new change proposal) rust.tf/libs521 *\`UnsafeCell\` access APIs* Amanieu: wonder about a mut version: `unsafe fn(&UnsafeCell<T>) -> &mut T` (The existing `get_mut` is not this) 8472: `unsafecell.get().as_ref_unchecked()` exists Amanieu to write counterproposal: `get_ref_unchecked` and `get_mut_unchecked` ### (new change proposal) rust.tf/libs520 *Add out of the box support for mapping custom error types that implement \`std::error::Error\` to \`Box\<dyn Error\>\`* Waiting on author to update the proposal ### (new change proposal) rust.tf/libs508 *impl\<A\> Allocator for &mut A* Still don't really understand the use case. Author did not provide code example after being asked. ### (new change proposal) rust.tf/libs506 *In\-place \`String::replace\_first\` and \`String::replace\_last\`* Last week: wanted to hear from BurntSushi ### (new change proposal) rust.tf/libs505 *A datatype representing an allocation* ### (new change proposal) rust.tf/libs504 *Implement Read and Write for Arc\<T\> for types where &T implements Read and Write, \*and\* it is safe to do so.* ### (new change proposal) rust.tf/libs501 *ACP: Add floating point representation conversions* ### (stalled change proposal) rust.tf/libs347 *Context reactor hook* ### (stalled change proposal) rust.tf/libs207 *\`parse\_line\` method for \`Stdin\`* ### (stalled change proposal) rust.tf/libs186 *Implementing flatten for \`Option\<&Option\<T\>\>\` and \`Option\<&mut Option\<T\>\>\`* ### (stalled change proposal) rust.tf/libs210 *Add associated consts to f32, f64 for mathematical constants* ### (stalled change proposal) rust.tf/libs194 *Fix:Introduce an interface to expose the current \`Command\` captured env var logic* ### (stalled change proposal) rust.tf/libs357 *ACP: \`std::collections::{hash\_map, btree\_map}::Entry::{is\_vacant, is\_occupied}\`* ### (stalled change proposal) rust.tf/libs253 *Provide way to deconstruct std::iter::Rev* ### (stalled change proposal) rust.tf/libs111 *Restructure ptr\_metadata to minimal support* ### (stalled change proposal) rust.tf/libs366 *Implementing UnixSocketExt traits for solaris/illumos ; starting with the unix\_socket\_exclbind feature* ### (stalled change proposal) rust.tf/libs277 *\[ACP\] RangeBounds::overlaps* _Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_