---
# System prepended metadata

title: Libs-API Meeting 2024-05-21
tags: [Minutes, Libs Meetings]

---

---
date: 2024-05-21
url: https://hackmd.io/BmgGi40QTOWbb8202Zmleg
---

# Libs-API Meeting 2024-05-21

###### tags: `Libs Meetings` `Minutes`

**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, Chris Denton, David Tolnay, TC, The 8472, eholk

## 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/82901 *Tracking Issue for \`Option::get\_or\_insert\_default\`* - (2 checkboxes left)
  - merge rust.tf/83871 *Tracking Issue for CharIndices::offset function* - (3 checkboxes left)
  - merge rust.tf/102012 *Tracking Issue for \`const\_waker\`* - (3 checkboxes left)
  - merge rust.tf/106943 *Implement DoubleEnded and ExactSize for Take\<Repeat\> and Take\<RepeatWith\>* - (3 checkboxes left)
  - merge rust.tf/62726 *Tracking issue for io\_slice\_advance* - (3 checkboxes left)
  - merge rust.tf/109402 *Implement owned ops for \`HashSet\` and \`BTreeSet\`* - (3 checkboxes left)
  - merge rust.tf/116113 * Generalize \`{Rc,Arc}::make\_mut()\` to unsized types.* - (3 checkboxes left)
  - merge rust.tf/115974 *Split core's PanicInfo and std's PanicInfo* - (2 checkboxes left)
  - merge rust.tf/117468 *Stabilize Wasm relaxed SIMD* - (4 checkboxes left)
  - merge rust.tf/101196 *Tracking Issue for \`Ready::into\_inner()\`* - (1 checkboxes left)
  - merge rust.tf/119131 *Tracking Issue for \`hint::assert\_unchecked\`* - (2 checkboxes left)
  - merge rust.tf/106418 *Implement \`PartialOrd\` and \`Ord\` for \`Discriminant\`* - (2 checkboxes left)
  - close rust.tf/56167 *Tracking issue for HashMap::raw\_entry* - (3 checkboxes left)
  - merge rust.tf/113219 *Tracking Issue for \`const\_cstr\_from\_ptr\`* - (5 checkboxes left)
  - merge rust.tf/55132 *Tracking issue for thread::Builder::spawn\_unchecked* - (3 checkboxes left)
  - merge rust.tf/123723 *Make \`std::os::tvos\`, \`std::os::visionos\` and \`std::os::watchos\` public* - (4 checkboxes left)
  - merge rust.tf/125112 *Document behavior of \`create\_dir\_all\` wrt. empty path* - (4 checkboxes left)
  - merge rust.tf/117618 *Tracking Issue for \`duration\_abs\_diff\`* - (3 checkboxes left)
  - merge rust.tf/112353 *Constification of BinaryHeap construction* - (3 checkboxes left)

[m-ou-se (12)](https://rfcbot.rs/fcp/m-ou-se), [pnkfelix (2)](https://rfcbot.rs/fcp/pnkfelix), [Amanieu (8)](https://rfcbot.rs/fcp/Amanieu), [nikomatsakis (3)](https://rfcbot.rs/fcp/nikomatsakis), [dtolnay (1)](https://rfcbot.rs/fcp/dtolnay), [yaahc (2)](https://rfcbot.rs/fcp/yaahc), [tmandry (2)](https://rfcbot.rs/fcp/tmandry), [joshtriplett (17)](https://rfcbot.rs/fcp/joshtriplett), [scottmcm (1)](https://rfcbot.rs/fcp/scottmcm), [BurntSushi (9)](https://rfcbot.rs/fcp/BurntSushi)

### (nominated) rust.tf/78485 *Tracking Issue for RFC 2930 (read\-buf)*

Questions for libs-api: https://github.com/rust-lang/rust/issues/78485#issuecomment-2122164752

8472: should we change `read_buf` to return number of bytes in the return value, as opposed to writing it into the cursor in the argument?

Amanieu: I would prefer a documentation fix rather than changing the signature.

Amanieu to respond suggesting a resolution

### (nominated) rust.tf/79024 *Tracking Issue for #!\[feature(async\_iterator)\]*

David to summarize last week's meeting and unnominate

### (nominated) rust.tf/99069 *Tracking issue for integer\_atomics*

Amanieu: this is supported on arm64, and x86_64 apple and windows, but not x86_64 linux

Amanieu: we already have a **stable** intrinsic in core::arch that exposes the behavior: https://doc.rust-lang.org/nightly/core/arch/x86_64/fn.cmpxchg16b.html

Amanieu to propose FCP

### (nominated) rust.tf/124108 *Add \`Box\<\[T; N\]\>: IntoIterator\` without any method dispatch hacks*

FCP finished. Should be merged?

### (nominated) rust.tf/125193 `P-critical` *regression: the type \`(dyn Any + 'static)\` may contain interior mutability*

- Close as intended behavior? The blast radius of this regression is tiny
- Remove `UnwindSafe` bound from `catch_unwind`, then close?
- Blanket-implement `UnwindSafe` for all types (in such a way that it doesn't conflict with downstream handwritten impls)? This would be controversial
- Implement `UnwindSafe` for `Context` despite it containing potentially non-UnwindSafe `dyn Any`?
- Revert?

Amanieu to prepare a revert PR

### (waiting on team) rust.tf/119550 *Rename \`AsyncIterator\` back to \`Stream\`, introduce an AFIT\-based \`AsyncIterator\` trait*

This is not waiting on libs-api.

### (new change proposal) rust.tf/libs370 *ACP: macro for UTF\-16 literals*

### (new change proposal) rust.tf/libs371 *ACP: primitive numeric traits*

8472: didn't num traits used to exist in the standard library pre-1.0?

David: the innovation since then is the `#[sealed]` attribute. Pre-1.0 we didn't have a way to specify a future-proof set of bounds

We don't really understand the use case

What are real-world examples of code that wants to be generic over specifically standard library primitive number types?

Amanieu: Prior art from `compiler_builtins`: https://github.com/rust-lang/compiler-builtins/blob/1f701b04c2f1438a993aef8fd800e1761f89a962/src/float/mod.rs

- There is a lot here that is not included in the ACP, so the ACP would not supersede this trait

Amanieu: leaning toward reject

TC: It seems there are two questions here.  One is whether libs-api wants numeric traits such as this at all.  The other is whether it wants ones with this particular API.  If it doesn't think it wants anything like this at all, at least unless certain hurdles could be overcome, one thing to do might be to write that up as a consensus somewhere.

Amanieu: this can be a crate. There is no good reason for it to be in the standard library.

The8472: But that a crate would need to forward things to the standard library and keep up with it.

### (new change proposal) rust.tf/libs372 *ACP: env::home\_dir replacement*

From a previous meeting, we posted a question, which has received a follow-up

Defer until Josh and/or Mara are available

### (new change proposal) rust.tf/libs376 *Methods for extracting 1 element out of an owned slice and dropping the rest*

David responded last week. Close.

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

TC: Is there any overlap with `gen` blocks?

Amanieu: we would prefer to see this proven out in `itertools`, and potentially explore whether generators allow improving the API

TC to leave a comment.

### (stalled change proposal) rust.tf/libs202 *Support for non\-blocking and best\-effort zero\-copy \`io::copy\`*

### (stalled change proposal) rust.tf/libs205 *Expose the internal \`SimpleMessage\` struct and allow creating \`std::io::Error\`s with them*

### (stalled change proposal) rust.tf/libs124 *Integrate \`Error\` trait with panic interfaces*

### (stalled change proposal) rust.tf/libs248 *ACP: Add \`finish\_non\_exhaustive\` to \`DebugList\`, \`DebugMap\`, and\`DebugTuple\`*

### (stalled change proposal) rust.tf/libs207 *\`parse\_line\` method for \`Stdin\`*


_Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_
