---
# System prepended metadata

title: Libs-API Meeting 2025-02-25
tags: [Minutes, Libs Meetings]

---

---
date: 2025-02-25
url: https://hackmd.io/rBhwM0XIS1yAAqugxjIOYg
---

# Libs-API Meeting 2025-02-25

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

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

## 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/130823 *Tracking Issue for \`non\_null\_from\_ref\`* - (3 checkboxes left)
  - merge rust.tf/137280 *stabilize ptr::swap\_nonoverlapping in const* - (5 checkboxes left)
  - merge rust.tf/115585 *Tracking issue for \`cfg\_match\`* - (4 checkboxes left)
  - merge rust.tf/134213 *Stabilize \`naked\_functions\`* - (4 checkboxes left)
  - merge rust.tf/136877 *Fix missing const for inherent pointer \`replace\` methods* - (3 checkboxes left)

[joshtriplett (3)](https://rfcbot.rs/fcp/joshtriplett), [m-ou-se (1)](https://rfcbot.rs/fcp/m-ou-se), [BurntSushi (5)](https://rfcbot.rs/fcp/BurntSushi), [Amanieu (4)](https://rfcbot.rs/fcp/Amanieu), [nikomatsakis (3)](https://rfcbot.rs/fcp/nikomatsakis), [traviscross (1)](https://rfcbot.rs/fcp/traviscross), [tmandry (1)](https://rfcbot.rs/fcp/tmandry), [dtolnay (2)](https://rfcbot.rs/fcp/dtolnay), [scottmcm (2)](https://rfcbot.rs/fcp/scottmcm)

### (nominated) rust.tf/libs358 *Update Windows exe search order (phase 2)*

Chris: Powershell only searches the `PATH`.

Here's an issue with many backlinks to other issues about the behavior:

https://github.com/rust-lang/rust/issues/37519#issuecomment-2018382117

Here's the perspective from someone at Microsoft:

https://github.com/rust-lang/rust/issues/87945#issuecomment-1380797148

---

We had a long discussion about this without resolution.  Some had unhappiness with the behavior on UNIX of doing fork/exec rather than `execvpe`.  We discussed `chroot` use cases.

Probabaly nobody loved that the Windows behavior changes what is searched when `.env` is called at all.

The remaining questions include:

- To what degree should this mirror the POSIX `spawn` behavior (even if we don't do that on the UNIX side right now) rather than the behavior elsewhere on Windows except for PowerShell?
- To what degree can we change the behavior without causing too much breakage, how do we measure for that, and how could we best notify interested people about this?

### (nominated) rust.tf/74985 *Tracking Issue for slice::array\_chunks*

The 8472 to write a comment about `where N > 0`.

### (nominated) rust.tf/129041 *Tracking Issue for \`const\_vec\_string\_slice\`*

FCP finished. Should be merged?

We'll start a new FCP.

### Process aside about where stabilization FCPs happen

TC: On the last issue, we're now doing the stabilization FCP on the stabilization PR, which reminds me...

There was that recent item where a stabilization on `offset_from_unsigned` was `r+`ed with the wrong name.  The FCP had been done on the tracking issue and had requested a name change.  That was then missed.  This was:

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

On the lang side, we do our stabilization FCPs on PRs for this reason, so we can do a final check.  As a matter of process alignment, is libs-api perhaps interested in this?

Amanieu: Sounds right to me.  Let's do that then going forward.

### (nominated) rust.tf/134585 *remove \`MaybeUninit::uninit\_array\`*

This is no longer needed now that `const { .. }` blocks exist.

### (nominated) rust.tf/135394 *\`MaybeUninit\` inherent slice methods part 2*

We'll go forward with this, including RalfJ's suggestion, and defer to stabilization confirming our happiness with these names.

TC and Amanieu were both a bit not in love with the `write_` prefixes, but other good ideas would be needed.

### (nominated) rust.tf/136638 *error on empty precision*

TC: This is a bug.  Nobody really wants to have written this.  We can FCW on this, and then later break it.

### (nominated) rust.tf/137198 *Rename \`cfg\_match!\` to \`cfg\_select!\`*

TC: `select` seems wrong to me given the ecosystem `select!` macros.  I'm with Josh that `cfg_match!` is better than `cfg_select!`.  That said, probably the most correct PL theory word for this is `cond`, and I've always called this macro `cfg_cond!`.

We'll talk about this when Josh is around.

### (nominated) rust.tf/137280 *stabilize ptr::swap\_nonoverlapping in const*

There's an ongoing FCP here, started by lang; we'll unnominate.

### (nominated) rust.tf/137449 *Denote \`ControlFlow\` as \`#\[must\_use\]\`*

TC: We do this on `Result`, `Option`, and `Poll`.  Seems clear that `ControlFlow` should do it also then.

Amanieu: Does this need an FCP?  Does lang FCP lint changes?

TC: We do.  We FCP new lints, changes to lint levels, etc.  While it is "only" a lint, it has user-visible effect, and it represents a directional commitment by our team, and so consensus is important.

Amanieu: We'll start an FCP here.

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

We'll defer this.

### (new change proposal) rust.tf/libs546 *Efficient integer formatting into fixed\-size buffer*

We'll nominate this.  We probably want to hear from David on this, as he's the author of:

https://github.com/dtolnay/itoa

The 8472 will write up some thoughts on the issue.

### (new change proposal) rust.tf/libs544 *\`Arc\<impl !Sized\>\` constructors*

The 8472: This reminds me of:

https://github.com/rust-lang/wg-allocators/issues/90

Amanieu: We could expose the layout, then you could do the allocation manually.  E.g.:

```rust
impl Arc {
   fn layout_for(layout: Layout) -> Layout;
} 
```

The 8472: We'd need to promise that zero-initializing an `Arc` is correct.  I feel like we need a builder for these weird cases.

TC: That'd be the "pretty" thing to do.  Is there not some set of primitives and guarantees we could expose to let people at least do this in an "ugly" unsafe way?

Amanieu: We could expose the layout, give people some way to initialize the prefix, and the offset between the header and the payload, which depends on the alignment of the payload.

The 8472: We'd need to think about the allocator API also.

Amanieu: We expose the `Arc` header as a type.  We wouldn't expose its internals, but you'd get its size and alignment.

### (new change proposal) rust.tf/libs529 *ACP: Add future::ok and future::err*

TC: I raised this over in the async stream.  Nobody argued against the position of just closing this.  Let's close it.  I'll write it up.

Amanieu: +1.

### (new change proposal) rust.tf/libs543 *ACP: Slice to array version of \`split\_off\`*

### (new change proposal) rust.tf/libs542 *Concurrent Read\-Write Locks on Slices*

### (new change proposal) rust.tf/libs540 *Add Unicode XID related functionalities to \`proc\_macro\` crate*

### (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/libs528 *ACP: Extending \`Borrow\` and \`BorrowMut\` to owned references*

### (new change proposal) rust.tf/libs527 *Introduce a \`Compare\` trait in the cmp mod*

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

### (stalled change proposal) rust.tf/libs364 *ACP: Add {Box, Rc, Arc}::map and {Box, Rc, Arc}::try\_map*

### (stalled change proposal) rust.tf/libs348 *std::os::unix::env::{argc, argv}*

### (stalled change proposal) rust.tf/libs194 *Fix:Introduce an interface to expose the current \`Command\` captured env var logic*

### (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/libs287 *ACP: Add \`FromByteStr\` trait with blanket impl \`FromStr\`*

### (stalled change proposal) rust.tf/libs333 *\`NonNull::{from\_ref, from\_mut}\`*

### (stalled change proposal) rust.tf/libs210 *Add associated consts to f32, f64 for mathematical constants*

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