Try   HackMD

Libs-API Meeting 2025-04-08

tags: Libs Meetings Minutes

Meeting Link: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
Attendees: Amanieu, Josh, David, Chris Denton, The 8472, Eric Holk, TC, Urgau

Agenda

  • Triage
  • Anything else?

Triage

FCPs

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

  • merge rust.tf/80437 Tracking Issue for `box_into_inner` - (1 checkboxes left)
  • merge rust.tf/138498 Implement Deref<Target=ByteStr> for CStr - (3 checkboxes left)
  • merge rust.tf/106418 Implement `PartialOrd` and `Ord` for `Discriminant` - (2 checkboxes left)
  • merge rust.tf/130823 Tracking Issue for `non_null_from_ref` - (3 checkboxes left)
  • merge rust.tf/137280 stabilize ptr::swap_nonoverlapping in const - (3 checkboxes left)
  • merge rust.tf/122661 Change the desugaring of `assert!` for better error output - (3 checkboxes left)
  • merge rust.tf/137992 Stabilise `os_string_pathbuf_leak` - (4 checkboxes left)
  • merge rust.tf/115585 Tracking issue for `cfg_match` - (2 checkboxes left)
  • merge rust.tf/138016 Added `Clone` implementation for `ChunkBy` - (3 checkboxes left)

joshtriplett (4), m-ou-se (4), BurntSushi (6), tmandry (1), Amanieu (5), dtolnay (1), nikomatsakis (2), scottmcm (1)

(nominated) rust.tf/libs547 Change ACP process to track unimplemented ACPs

Reject -> same as before
Accept -> leave open, add label, ask submitter to create tracking issue and close

(nominated) rust.tf/98990 #[deprecated] lint doesn't trigger when overriding deprecated method

Discussed last week pass this back to lang

(nominated) rust.tf/111137 Tracking Issue for AVX512 intrinsics

Blocked on rust.tf/138940

Josh will check on the status of this and we can discuss in the lang meeting tomorrow.

(nominated) rust.tf/130703 Tracking Issue for secure random data generation in `std`

Discussion on returning errors vs panicking

Josh: it sounds like the lowest-level random source API needs to support returning error, and when we design the higher-level API for things like "roll a D6" (inspired by rand_core) we can definitely consider panicking in those

(nominated) rust.tf/137198 Rename `cfg_match!` to `cfg_select!`

In FCP as of 2 weeks ago on the tracking issue, agreed to close the rename PR

Make cfg_match! a semitransparent macro #138993

https://github.com/rust-lang/rust/pull/138993

We're not sure what the difference in terms of exposed behavior is, and we'll ask about that. If we weren't to do this, it seems based on the discussion in the issue that this would be exposing part of "macros 2.0" for the first time, and that would need a lang FCP.

(nominated) rust.tf/137654 Debug impls of ExtractIf have inconsistent trait bounds

Waiting on David to send:

  • hashbrown PR
  • rust standard library hashbrown update
  • standard library API PR

(waiting on team) rust.tf/134446 Stabilize the `cell_update` feature

Waiting on FCP

(waiting on team) rust.tf/136687 Improve the documentation of `Display` and `FromStr`, and their interactions

Deferring for a longer discussion

(waiting on team) rust.tf/136912 Add missing trait implementations for ScopedJoinHandle

Waiting on author

(waiting on team) rust.tf/137487 Stabilize `assert_matches` and move it to `core::macros`

Related: rust.tf/139493 David to propose a way to avoid putting vec module into prelude

(new change proposal) rust.tf/libs571 implement `Default` for raw pointers

(new change proposal) rust.tf/libs570 actually checked bitshifts

(new change proposal) rust.tf/libs569 ACP: abstract `BufReader::peek`

(new change proposal) rust.tf/libs568 Implement `Read` and `Write` traits for `BorrowedFd` and `OwnedFd`

Approved; Josh to write comment.

(new change proposal) rust.tf/libs562 Add ability to customize STARTUPINFO structure in Command API

(new change proposal) rust.tf/libs559 Expose `.set_flags()` on Posix `CommandExt `

(new change proposal) rust.tf/libs557 Add `iter::Peekable::next_unpeek`

David's counterproposal: no new Unpeeker type, no ambiguity about what happens if the peek slot is already filled when you unpeek

impl<I: Iterator> Peekable<I> {
    fn bikeshed(&mut self) -> &mut Option<I::Item>;
}

let peek_slot = peekable.bikeshed();
if let Some(value) = peek_slot.take() {
    if bad(&value) {
        *peek_slot = Some(value); // unpeek
    }
} else {
    // end of iterator
}

(new change proposal) rust.tf/libs555 Add `std::io::Seek` instance for `std::io::Take<T>` when `T: Seek`

(new change proposal) rust.tf/libs554 Add `std::process::Output::exit_ok`

(new change proposal) rust.tf/libs553 Add a "shrink-if-excessive" API to `Vec`

(stalled change proposal) rust.tf/libs287 ACP: Add `FromByteStr` trait with blanket impl `FromStr`

(stalled change proposal) rust.tf/libs181 `Cow::map_borrowed`, `Cow::map_owned`, and `Cow::map`

(stalled change proposal) rust.tf/libs344 ACP: Add `std::string::String::replace_and_count` and/or `replace_with`

(stalled change proposal) rust.tf/libs379 Combine, an iterator adapter which statefully maps multiple input iterations to a single output iteration

(stalled change proposal) rust.tf/libs347 Context reactor hook

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

(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/libs253 Provide way to deconstruct std::iter::Rev

(stalled change proposal) rust.tf/libs336 Add `or_try_*` variants for HashMap and BTreeMap Entry APIs

Generated by fully-automatic-rust-libs-team-triage-meeting-agenda-generator