---
# System prepended metadata

title: Libs-API Meeting 2021-06-23
tags: [Minutes, Libs Meetings]

---

# Libs-API Meeting 2021-06-23

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

**Attendees**: david, mara, jane, 

## Agenda

- [Open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg)
- Triage
- Anything else?

## Triage

### FCPs

8 open T-libs-api FCPs:
<details><summary><a href="https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AT-libs-api+label%3Aproposed-final-comment-period">2 <code>rust-lang/rfcs</code> FCPs</a></summary>

  - [[merge 3107](https://github.com/rust-lang/rfcs/issues/3107#issuecomment-865315645)] *\`#\[derive(Default)\]\` on enums with a \`#\[default\]\` attribute* - (2 checkboxes left)
  - [[close 2756](https://github.com/rust-lang/rfcs/issues/2756#issuecomment-866489015)] *New RFC: Collection Transmute* - (3 checkboxes left)
</details>
<details><summary><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-libs-api+label%3Aproposed-final-comment-period">6 <code>rust-lang/rust</code> FCPs</a></summary>

  - [[merge 81050](https://github.com/rust-lang/rust/issues/81050#issuecomment-765341798)] *Stabilize core::task::ready!* - (0 checkboxes left)
  - [[merge 84640](https://github.com/rust-lang/rust/issues/84640#issuecomment-829631948)] *Implement \`TryFrom&lt;char&gt;\` for \`u8\`* - (1 checkboxes left)
  - [[merge 86335](https://github.com/rust-lang/rust/issues/86335#issuecomment-865364311)] *Commit to not supporting IPv4\-in\-IPv6 addresses* - (4 checkboxes left)
  - [[merge 85835](https://github.com/rust-lang/rust/issues/85835#issuecomment-860237594)] *Implement Extend&lt;(A, B)&gt; for (Extend&lt;A&gt;, Extend&lt;B&gt;)* - (3 checkboxes left)
  - [[merge 44434](https://github.com/rust-lang/rust/issues/44434#issuecomment-865374685)] *Provide an API to extract fields from Command builder* - (5 checkboxes left)
  - [[merge 75243](https://github.com/rust-lang/rust/issues/75243#issuecomment-866045324)] *Tracking Issue for \`array\_map\`* - (5 checkboxes left)
</details>
<p></p>

[Amanieu (3)](https://rfcbot.rs/fcp/Amanieu), [BurntSushi (0)](https://rfcbot.rs/fcp/BurntSushi), [dtolnay (4)](https://rfcbot.rs/fcp/dtolnay), [joshtriplett (4)](https://rfcbot.rs/fcp/joshtriplett), [m-ou-se (2)](https://rfcbot.rs/fcp/m-ou-se), [sfackler (7)](https://rfcbot.rs/fcp/sfackler), [yaahc (3)](https://rfcbot.rs/fcp/yaahc)

### Nominated

- [1 `rust-lang/libs-team` `T-libs-api` `I-nominated` items](https://github.com/rust-lang/libs-team/issues?q=is:open+label:T-libs-api+label:I-nominated)
  - [[17](https://github.com/rust-lang/libs-team/issues/17)] *Improving the standard library implementation on Windows*
    - Ask Microsoft what they prefer?
    - Microsoft cares more about binary backwards compatibility than source code. Not exactly the same as us.
    - Mara: Reach out to people at Microsoft for advice.
    - We care about practical breakage, not theoretical breakage.
    - We can't universally decide on all these issues at once, but encourage Chris to work on these.
- [4 `rust-lang/rust` `T-libs-api` `I-nominated` items](https://github.com/rust-lang/rust/issues?q=is:open+label:T-libs-api+label:I-nominated)
  - [[76905](https://github.com/rust-lang/rust/issues/76905)] *Tracking Issue for feature(string\_drain\_as\_str) \- string::Drain::as\_str()*
    - FCP merge
  - [[81363](https://github.com/rust-lang/rust/pull/81363)] *Remove P: Unpin bound on impl Future for Pin*
    - If it's correct, just merge, with the function unstable.
    - Decide on the name for the function later before stabilizing.
  - [[84838](https://github.com/rust-lang/rust/pull/84838)] *implement \`Default\` for all arrays*
    - Fine from an api perspective
  - [[86183](https://github.com/rust-lang/rust/pull/86183)] *Change environment variable getters to error recoverably*
    - See libs meeting: returning None for non-existing vars is fine.
    - https://en.wikipedia.org/wiki/Robustness_principle
- [2 `rust-lang/rfcs` `T-libs-api` `I-nominated` items](https://github.com/rust-lang/rfcs/issues?q=is:open+label:T-libs-api+label:I-nominated)
  - [[2802](https://github.com/rust-lang/rfcs/pull/2802)] *RFC: Vec::recycle*
    - Seems very niche.
    - Providing unsafe things behind a safe api is nice, but with more const generics, this might be a static check in the future.
    - Josh to reply.
  - [[3140](https://github.com/rust-lang/rfcs/pull/3140)] *RFC: fallible\-allocation*
    - not distribute variants of std. expect people to build their own std (with cargo's build-std, or 'manually')
    - default-features=false problem
    - Amanieu: just one std version, but a lint to block access to some parts?
      - Still requires defining oom handler, etc.
    - From API perspective: We need to make sure none of this is stable. When unstable, not much API concerns here.
    - Next step: proposal for what feature flags mean for stability. Require nightly?

### Waiting on team

- [6 `rust-lang/rust` `T-libs-api` `S-waiting-on-team` items](https://github.com/rust-lang/rust/issues?q=is:open+label:T-libs-api+label:S-waiting-on-team)
  - [[76901](https://github.com/rust-lang/rust/pull/76901)] *Implement RFC 2500 Needle API (Part 1)*
  - [[79965](https://github.com/rust-lang/rust/pull/79965)] *More ErrorKinds for common errnos*
  - [[84770](https://github.com/rust-lang/rust/pull/84770)] *Stabilize Bufwriter::into\_raw\_parts and IntoInnerError::into\_raw\_parts, ::into\_error*
  - [[85270](https://github.com/rust-lang/rust/pull/85270)] *When using \`process::Command\` on Windows, environment variable names must be case\-preserving but case\-insensitive*
  - [[86344](https://github.com/rust-lang/rust/pull/86344)] *Split MaybeUninit::write into new feature gate and stabilize it*
  - [[86462](https://github.com/rust-lang/rust/pull/86462)] *Use RangeInclusive for fNN::lerp*

### Needs decision

- [7 `rust-lang/rust` `T-libs-api` `I-needs-decision` items](https://github.com/rust-lang/rust/issues?q=is:open+label:T-libs-api+label:I-needs-decision)
  - [[25053](https://github.com/rust-lang/rust/issues/25053)] *UnsafeCell should implement the Copy trait*
  - [[26951](https://github.com/rust-lang/rust/issues/26951)] `P-low` *Abort on some large allocation requests, Panic on other*
  - [[29494](https://github.com/rust-lang/rust/issues/29494)] `P-low` *Command does not escape arguments as expected on windows*
  - [[37868](https://github.com/rust-lang/rust/issues/37868)] *std::process::Command's current\_dir behaves differently on Unix and Windows, with respect to relative exe paths*
  - [[56889](https://github.com/rust-lang/rust/issues/56889)] *Write::write\_all erroring when encountering Ok(0) interacts poorly with the contract of Write::write*
  - [[59878](https://github.com/rust-lang/rust/issues/59878)] *Box\<\[T\]\> should have an IntoIter implementation.*
  - [[62726](https://github.com/rust-lang/rust/issues/62726)] *Tracking issue for io\_slice\_advance*

## Actions

- [ ] Reply to all issues/PRs discussed in this meeting, or add them to the [open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg).

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