--- date: 2025-02-11 url: https://hackmd.io/0MzQlORRSvq_vYAPAMssNQ --- # Libs-API Meeting 2025-02-11 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr **Attendees**: Amanieu, Mara, The 8472, David Tolnay, TC, Chris Denton, Josh Triplett ## Agenda - Triage - Anything else? ## Triage ### FCPs 6 rust-lang/rust T-libs-api FCPs #### merge rust.tf/80437 *Tracking Issue for \`box\_into\_inner\`* - (1 checkbox left) Just needs a documentation PR. David: Maybe people aren't bothering to make that PR, because they realize they can use `*b` instead. Amanieu: Is lang planning to make Box more "normal", removing the deref magic? Mara: Should we resolve the concern and ask for the docs to be part of the stabilization PR? David: Prefer not to. Prefer to first solve the docs. Conclusion: Nothing to do for now. #### merge rust.tf/106418 *Implement \`PartialOrd\` and \`Ord\` for \`Discriminant\`* - (2 checkboxes left) Blocked. Waiting on a decision on https://github.com/rust-lang/rfcs/pull/3607. JoshT: Help might be welcome. Scott is very busy and I don't think enums are the top item on his queue right now. Amanieu: I feel like this is simliar to `size_of` and `align_of`. Internal details you can inspect but shouldn't depend on. The 8472: Not a good precedent. JoshT: Agree with Amanieu Mara: Same. David: Same. All libs-api boxes checked. Blocked on lang concerns. #### merge rust.tf/130192 *\[discussion\] \`ErrorKind::InvalidFilename\` from \`io\_error\_more\`* - (3 checkboxes left) Boxes have been checked, now in FCP. #### merge rust.tf/129375 *Tracking Issue for unbounded\_shifts* - (3 checkboxes left) Boxes have been checked, now in FCP. #### merge rust.tf/103806 *Tracking Issue for \`string\_extend\_from\_within\`* - (3 checkboxes left) Boxes have been checked, now in FCP. #### merge rust.tf/134213 *Stabilize \`naked\_functions\`* - (6 checkboxes left) Mostly lang. Libs-api for `core::arch::naked_asm!`. ### (nominated) rust.tf/libs246 *ACP: replace use of \`Pointee\` trait with a \`ptr::Metadata\` type* Waiting for more context from author. ### (nominated) rust.tf/62280 *Tracking issue for \`slice\_take\`* Amanieu to reply. ### (nominated) rust.tf/91006 *Tracking Issue for \`const\` checked slice to \`str\` conversions* See next item. ### (waiting on team) rust.tf/136668 *Stabilize \`core::str::from\_utf8\_mut\` as \`const\`* FCP started. ### (nominated) rust.tf/130994 *Tracking Issue for File lock API* FCP finished, but new comment: https://github.com/rust-lang/rust/issues/130994#issuecomment-2647100268 JoshT: Three things: 1. If you have a file opened for append, windows won't let you call LockFile. Doesn't seem like a blocker, just something worth documenting. The 8472: Append mode? or Write+Append mode? JoshT: If you have read or write, it's fine. Only "only append" doesn't work. The 8472: OpenOptions specifically says you don't need to add "write" when you select "append". The 8472: Documentation today: > Note that setting .write(true).append(true) has the same effect as setting only .append(true). Chris: I'm pretty sure it's not true. Mara: Sounds like something to look into and fix before continuing. JoshT: 2. General caveats on LockFileEx, but they seem similar as those on other platforms. 3. Share mode, but that's not a concept on other platforms. Not a substitute for FileLock. Chris: we already expose those. So, two docs updates: 1. on file lock api, explaining the windows append thing 2. on OpenOptions::append, clarifying/fixing the write+append situation. Mara: Looks like the OpenOptions::append comment is true. Results in same syscall in std. Not sure what that means for FileLock. We request `c::FILE_GENERIC_WRITE & !c::FILE_WRITE_DATA`. No clue if that means FileLock works or not. Mara: We might want to document that without read+write, file locking might not work? Amanieu: Can we just make it work, by adding the right flags to append mode? JoshT: I suspect that won't work. Amanieu: Someone should try what happens. Stabilization blocked on figuring this out. New comments since the start of our discussion One mentions that the windows lock isn't advisory. It actually blocks reads and writes. Amanieu: Only a doc concern. TC: We shouldn't mislead people on platforms where it is advisory. JoshT to send a PR to update docs for the advisory/mandatory issue. stabilization PR r-'d ### (nominated) rust.tf/136102 *2024 edition prelude item docs are not inlined, and cause some duplication and confusion* `derive` macro and a few other items have no canonical path, they _only_ live in the prelude. Most macros live in the std/core root. a few do not. Two requests: 1. sign-off on reverting the common module. going back to how it was before 2. sign-off on asking someone to find canonical paths for these stable macros. Also https://github.com/rust-lang/rust/issues/136102#issuecomment-2620097505 Both are fine. Mara: I'm fine with putting `derive` etc. in the crate root. Amanieu: We can FCP that. ### (nominated) rust.tf/136355 *Add \`\*\_value\` methods to proc\_macro lib* Mara to reply about a potential concern on the new sysroot lib. ### (nominated) rust.tf/136616 *Add `std::os::darwin::thread::MainThreadMarker`* Reject, not suitable for std. ### (nominated) rust.tf/136862 *core: use \`FormattingOptions\` by reference* Re-nominated for libs ### (waiting on team) rust.tf/134340 *Stabilize \`num\_midpoint\_signed\` feature* Waiting on FCP ### (waiting on team) rust.tf/135811 *Make Miri aware of leaks of \`Box\`/\`Vec\`/\`String\`* Waiting on FCP ### (new change proposal) rust.tf/libs538 *\`RangeBound::into\_bounds\`* ### (new change proposal) rust.tf/libs537 *ACP: JoinHandle extensions for ScopedJoinHandle* ### (new change proposal) rust.tf/libs536 *ACP: hex formatting and parsing for floats* ### (new change proposal) rust.tf/libs535 *ACP: ref access to \`core::net::Ip\*Addr\` octet bytes, \`impl AsRef\<\[u8\]\> for core::net::Ip\*Addr\`* ### (new change proposal) rust.tf/libs534 *Add \`bool::is\_false\`* ### (new change proposal) rust.tf/libs533 *\`truncate\_front\` API for \`VecDeque\` that is O(1) for trivial drop types* ### (new change proposal) rust.tf/libs531 *Allow unguarded access to an RwLock's inner value using unsafe* ### (new change proposal) rust.tf/libs530 *ACP: Expose more Unicode casing data in libcore* ### (new change proposal) rust.tf/libs529 *ACP: Add future::ok and future::err* ### (new change proposal) rust.tf/libs528 *ACP: Extending \`Borrow\` and \`BorrowMut\` to owned references* ### (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/libs207 *\`parse\_line\` method for \`Stdin\`* ### (stalled change proposal) rust.tf/libs181 *\`Cow::map\_borrowed\`, \`Cow::map\_owned\`, and \`Cow::map\`* ### (stalled change proposal) rust.tf/libs204 *Integer Manipulation API* ### (stalled change proposal) rust.tf/libs298 *Constructive/Destructive Interference Size Padding* ### (stalled change proposal) rust.tf/libs210 *Add associated consts to f32, f64 for mathematical constants* ### (stalled change proposal) rust.tf/libs358 *Update Windows exe search order (phase 2)* ### (stalled change proposal) rust.tf/libs348 *std::os::unix::env::{argc, argv}* ### (stalled change proposal) rust.tf/libs287 *ACP: Add \`FromByteStr\` trait with blanket impl \`FromStr\`* _Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_