# 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