# 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