# Libs-API Meeting 2021-10-20 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr **Attendees**: Amanieu, David, Jane, Josh Triplett, Mara, Mark, Oli, Jubilee ## Agenda - [Open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg) - Const stuff - Oli joining the meeting to talk about const eval. - trait impls can now be const. e.g. `impl const Add for i32`, and use it in constant exprs. A trait bound can specify `const`. - Adding const to functions (unstably) is fine, but how about const trait impls and bounds? - https://github.com/rust-lang/rust/pull/89876 - low risk: trait impls can't be `unstable`, but they can be `rustc_const_unstable` - we can approve PRs like this, but ping const eval wg - careful with unsafe code in const functions/impls, as that might behave differently in const eval - Triage - Anything else? ## Triage ### FCPs 12 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">1 <code>rust-lang/rfcs</code> FCPs</a></summary> - [[merge 3184](https://github.com/rust-lang/rfcs/issues/3184#issuecomment-946682561)] *Thread local Cell methods.* - (4 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">11 <code>rust-lang/rust</code> FCPs</a></summary> - [[merge 84640](https://github.com/rust-lang/rust/issues/84640#issuecomment-829631948)] *Implement \`TryFrom\<char\>\` for \`u8\`* - (0 checkboxes left) - [[close 87228](https://github.com/rust-lang/rust/issues/87228#issuecomment-930052007)] *Decide whether \`asm!\` and/or \`global\_asm!\` should be exported from the prelude. * - (2 checkboxes left) - [[close 56167](https://github.com/rust-lang/rust/issues/56167#issuecomment-910742041)] *Tracking issue for HashMap::raw\_entry* - (3 checkboxes left) - [[merge 88919](https://github.com/rust-lang/rust/issues/88919#issuecomment-922813671)] *Remove braces from Rust 2015 panic macro* - (4 checkboxes left) - [[merge 89621](https://github.com/rust-lang/rust/issues/89621#issuecomment-939180524)] *doc: guarantee call order for sort\_by\_cached\_key* - (3 checkboxes left) - [[merge 89238](https://github.com/rust-lang/rust/issues/89238#issuecomment-927177703)] *deprecate f{32,64}::DIGITS* - (2 checkboxes left) - [[merge 86369](https://github.com/rust-lang/rust/issues/86369#issuecomment-934899667)] *Tracking Issue for \`io::Cursor::{remaining\_slice, is\_empty}\`* - (4 checkboxes left) - [[merge 88601](https://github.com/rust-lang/rust/issues/88601#issuecomment-935402051)] *Implement \`Termination\` for \`Result\<Infallible, E\>\`* - (3 checkboxes left) - [[merge 81383](https://github.com/rust-lang/rust/issues/81383#issuecomment-945379226)] *Tracking Issue for \`option\_result\_unwrap\_unchecked\`* - (3 checkboxes left) - [[merge 89999](https://github.com/rust-lang/rust/issues/89999#issuecomment-946680908)] *Update std::env::temp\_dir to use GetTempPath2 on Windows when available.* - (5 checkboxes left) - [[merge 84223](https://github.com/rust-lang/rust/issues/84223#issuecomment-941270847)] *Tracking Issue for const\-initialized thread locals* - (4 checkboxes left) </details> <p></p> [joshtriplett (9)](https://rfcbot.rs/fcp/joshtriplett), [m-ou-se (4)](https://rfcbot.rs/fcp/m-ou-se), [BurntSushi (7)](https://rfcbot.rs/fcp/BurntSushi), [dtolnay (5)](https://rfcbot.rs/fcp/dtolnay), [scottmcm (1)](https://rfcbot.rs/fcp/scottmcm), [yaahc (4)](https://rfcbot.rs/fcp/yaahc), [pnkfelix (1)](https://rfcbot.rs/fcp/pnkfelix), [Amanieu (7)](https://rfcbot.rs/fcp/Amanieu) ### Nominated - [1 `rust-lang/libs-team` `T-libs-api` `I-nominated` items](https://github.com/rust-lang/libs-team/issues?q=label:T-libs-api+label:I-nominated+is:open) - [[35](https://github.com/rust-lang/libs-team/issues/35)] *MCP for adding #\[must\_use\] annotations throughout the standard library* - Seems fine! - Josh to continue approving the changes. - [3 `rust-lang/rust` `T-libs-api` `I-nominated` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:I-nominated+is:open) - [[88919](https://github.com/rust-lang/rust/pull/88919)] *Remove braces from Rust 2015 panic macro* - Doesn't seem to have a big impact either way. - Needs some motivation. Looks like there is none. Close it? - [[89658](https://github.com/rust-lang/rust/issues/89658)] *Pushing an empty path to a verbatim path no longer adds a separator* - .push("") adding a separator seems correct, and consistent with other platforms. - Fix PR available. - [[89926](https://github.com/rust-lang/rust/pull/89926)] *make \`Instant::{duration\_since, elapsed, sub}\` saturating and remove workarounds* - Users would no longer see a panic when they reverse `a - b`. - Saturating in `.elapsed()` seems fine. - `a - b` or `.duration_since()` is less obvious. - Keep panic in duration_since and Sub? - Expect people to use .saturating_* - Developers are often on different machines than the users of their code. - Josh: +1 for keeping it in Sub; I think we should saturate in both duration_since and elapsed. - Make Sub panic only in debug mode, and saturate in release mode. - Only saturate to zero for small differences? - Hard to pick the right threshold - A lint might help check the order? - Conclusion for now: - Fine for elapsed(). - Not merge the PR as is where everything always saturates. - More discussion to be had. -> GitHub ### Waiting on team - [2 `rust-lang/rust` `T-libs-api` `S-waiting-on-team` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:S-waiting-on-team+is:open) - [[78225](https://github.com/rust-lang/rust/pull/78225)] *Warn using last and count to exhaust an iterator* - [[89951](https://github.com/rust-lang/rust/pull/89951)] *Stabilize \`option\_result\_unwrap\_unchecked\`* ### Needs decision - [3 `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) - [[43469](https://github.com/rust-lang/rust/issues/43469)] *std::sync::Once: Should Once be UnwindSafe or RefUnwindSafe?* - [[87228](https://github.com/rust-lang/rust/issues/87228)] *Decide whether \`asm!\` and/or \`global\_asm!\` should be exported from the prelude.* - [[88967](https://github.com/rust-lang/rust/issues/88967)] *Stabilizing Iterator::intersperse breaks a large number of crates* ### 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) - [[64888](https://github.com/rust-lang/rust/issues/64888)] *Tracking issue for \`report\-time\`* - [[74217](https://github.com/rust-lang/rust/issues/74217)] *Tracking Issue for deque\_range* - [[71582](https://github.com/rust-lang/rust/issues/71582)] *Tracking Issue for Box::into\_boxed\_slice* - [[71213](https://github.com/rust-lang/rust/issues/71213)] *Tracking Issue for \`wasi\_ext\`* - [[69099](https://github.com/rust-lang/rust/issues/69099)] *Tracking Issue for \`std::cell::{Ref, RefMut}::leak\`* ## 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)_