---
# System prepended metadata

title: Libs-API Meeting 2022-01-12
tags: [Minutes, Libs Meetings]

---

# Libs-API Meeting 2022-01-12

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

**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, David, Mara, Josh Triplett, Mark, The 8472

## Agenda

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

## Triage

### FCPs

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

  - [[close 56167](https://github.com/rust-lang/rust/issues/56167#issuecomment-910742041)] *Tracking issue for HashMap::raw\_entry* - (3 checkboxes left)
  - [[merge 89238](https://github.com/rust-lang/rust/issues/89238#issuecomment-927177703)] *deprecate f{32,64}::DIGITS* - (2 checkboxes left)
  - [[merge 86845](https://github.com/rust-lang/rust/issues/86845#issuecomment-950843091)] *Tracking Issue for owned locked stdio handles* - (4 checkboxes left)
  - [[merge 86941](https://github.com/rust-lang/rust/issues/86941#issuecomment-951378107)] *Stabilise std::is\_aarch64\_feature\_detected* - (2 checkboxes left)
  - [[merge 90291](https://github.com/rust-lang/rust/issues/90291#issuecomment-955599591)] *Loosen the bound on the Debug implementation of Weak.* - (2 checkboxes left)
  - [[merge 78186](https://github.com/rust-lang/rust/issues/78186#issuecomment-1005767007)] *Tracking Issue for feature(pin\_static\_ref): Pin::{static\_ref,static\_mut}* - (3 checkboxes left)
  - [[merge 90955](https://github.com/rust-lang/rust/issues/90955#issuecomment-971978699)] *windows: Map \`ERROR\_INVALID\_NAME\` as \`InvalidInput\`* - (2 checkboxes left)
  - [[merge 92663](https://github.com/rust-lang/rust/issues/92663#issuecomment-1007875542)] *Implement generic \`Write for Cursor\<T\>\`* - (4 checkboxes left)
  - [[merge 92519](https://github.com/rust-lang/rust/issues/92519#issuecomment-1008249622)] *Use verbatim paths for \`process::Command\` if necessary* - (4 checkboxes left)
  - [[merge 89492](https://github.com/rust-lang/rust/issues/89492#issuecomment-1008297377)] *Tracking Issue for \`int\_abs\_diff\`* - (4 checkboxes left)
  - [[merge 87096](https://github.com/rust-lang/rust/issues/87096#issuecomment-950842917)] *Tracking Issue for \`Stdin::lines\`, \`Stdin::split\` forwarder methods* - (2 checkboxes left)
</details>
<p></p>

[m-ou-se (4)](https://rfcbot.rs/fcp/m-ou-se), [dtolnay (3)](https://rfcbot.rs/fcp/dtolnay), [joshtriplett (5)](https://rfcbot.rs/fcp/joshtriplett), [BurntSushi (11)](https://rfcbot.rs/fcp/BurntSushi), [yaahc (6)](https://rfcbot.rs/fcp/yaahc), [Amanieu (3)](https://rfcbot.rs/fcp/Amanieu)

### Nominated

- [2 `rust-lang/rust` `T-libs-api` `I-libs-api-nominated` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:I-libs-api-nominated+is:open)
  - [[90209](https://github.com/rust-lang/rust/pull/90209)] *Elide clone operation when calling \`iter::Cloned::advance\_{back}\_by()\`*
    - Avoid cloning when not necessary.
    - Also for nth() and count().
    - Clone operations with side effects are surprising but might exist.
    - Should be less controversial than skipping e.g. `map` on `nth(10)`.
    - There's an RFC that says that we can skip Clone of things that are Copy. But this goes further, also for non-Copy things.
    - Is this useful in practice?
    - Do we know anyone who is strongly in favor, or strongly against?
      - We don't care very strongly, but others probably do. Is it worth making the change?
    - These kind of optimizations seem like a job for the compiler/optimizer, rather than the library.
    - Mara: This PR itself seems fine, but it's supposed to be a first step towards more controversial specializations we'd probably not want to do. With that in mind, this PR itself is probably not worth it.
    - Can the compiler optimize these things better? Might be tricky.
  - [[92431](https://github.com/rust-lang/rust/pull/92431)] *Add unstable env::set and env::remove*
    - Some people might still allow(deprecated) to use the old fucntions.
    - But it still puts a bit more pressure on doing it correctly, hopefully making env-var-configured libraries expose some alternative.
    - Alternative to this? Only chanve env for new processes through Command api.
    - For things in the same process, that shouldn't happen in normal situations. Libraries should provide more ways than just environment variables to take configuration from the rest of the program.
    - David: Use an edition mechanism to enforce the deprecation/unsafication?
    - These are very generic/nice names. Maybe `set_var_unchecked` or something, in case we want `set` for something nicer.
    - How about not merging this PR and having a `#[deprecated_safe]` attribute?
      - Timeline:
            * Provide replacement APIs today (RUST_BACKTRACE, etc.)
            * Blog about this guideline.
            * Mark env::set_var/remove_var with deprecated_safe
            * In 2-6 years, figure out next steps (e.g., a safe API).
    - Mark to push this forward.

### Waiting on team

None

### Needs decision

- [1 `rust-lang/rust` `T-libs-api` `I-needs-decision` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:I-needs-decision+is:open)
  - [[89621](https://github.com/rust-lang/rust/pull/89621)] *doc: guarantee call order for sort\_by\_cached\_key*
    - Already in FCP.

### Stalled Tracking Issues

- [30 `rust-lang/rust` `T-libs-api` `C-tracking-issue` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:C-tracking-issue+is:open+sort:updated-asc)
  - [[41619](https://github.com/rust-lang/rust/issues/41619)] *Tracking issue for RFC 1868: A portability lint*
  - [[46488](https://github.com/rust-lang/rust/issues/46488)] *Stabilize allow\_fail test flag*
  - [[48711](https://github.com/rust-lang/rust/issues/48711)] *Tracking issue for std::process::ExitCode (feature process\_exitcode\_placeholder)*
  - [[57715](https://github.com/rust-lang/rust/issues/57715)] *Tracking issue for RFC 2235, "Implement Debug, Eq, PartialEq, and Hash for libc structs"*
  - [[71213](https://github.com/rust-lang/rust/issues/71213)] *Tracking Issue for \`wasi\_ext\`*

## 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-au