owned this note
owned this note
Published
Linked with GitHub
# 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)_