---
# System prepended metadata

title: Libs-API Meeting 2023-01-03
tags: [Minutes, Libs Meetings]

---

# Libs-API Meeting 2023-01-03

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

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

## Agenda

- Happy new year!
- dtolnay surprise idea (very good)
  - in-person sync libs meeting somewhere
  - let's discuss details on Zulip
- Triage
- Anything else?

## Triage

### FCPs

13 rust-lang/rust T-libs-api FCPs

[Amanieu (5)](https://rfcbot.rs/fcp/Amanieu), [dtolnay (5)](https://rfcbot.rs/fcp/dtolnay), [BurntSushi (7)](https://rfcbot.rs/fcp/BurntSushi), [joshtriplett (5)](https://rfcbot.rs/fcp/joshtriplett), [m-ou-se (5)](https://rfcbot.rs/fcp/m-ou-se)

### Nominated

- [6 `rust-lang/rust` `I-libs-api-nominated` items](https://github.com/rust-lang/rust/issues?q=label:I-libs-api-nominated+is:open)
  - rust.tf/54140 *Tracking Issue: Procedural Macro Diagnostics (RFC 1566)*
    - No updates since last meeting.
  - rust.tf/65991 *Tracking issue for dyn upcasting coercion*
    - Will allow upcasting &dyn Error to &dyn Display, etc. Full list in niko's comment. Are we okay with all of those?
    - Will increase vtable size when there's multiple super traits.
    - Some traits are upcastable to &dyn Sealed.
      - Not a problem though.
      - And that'd no longer be the case if we get a proper ``#[sealed]`` attribute.
          - Josh: This is happening, with https://github.com/rust-lang/rust/issues/105077
  - rust.tf/83363 *Implement new proc macro diagnostics API*
    - No updates since last meeting.
  - rust.tf/90308 *Consider deprecating and/or modifying behavior of std::env::set\_var*
    - Left comments in the last meeting.
    - Relabeled to E-help-wanted.
  - rust.tf/93565 *impl Try for ExitStatus*
    - wait() returns `Result<ExitCode>`, so `wait()??` would be confusing.
    - `.exit_ok()` (nightly) seems better.
    - name exit_ok seems bad though. (it doesn't actually exit anything)
    - bikeshed time
    - to_result()?
    - david: using "success" in the name would be good
      - success() -> bool exists. this is a sibling method
    - amanieu: prefer to_result()
    - success_or_err()?
    - Mara to reply.
  - rust.tf/104210 *expose rebuild and implement drain\_filter for BinaryHeap*
    - Blocked on: https://github.com/rust-lang/rust/pull/105851
    - See below.
- [1 `rust-lang/rfcs` `I-libs-api-nominated` items](https://github.com/rust-lang/rfcs/issues?q=label:I-libs-api-nominated+is:open)
  - rust.tf/rfc2832 *RFC: Move \`std::net::IpAddr\` types into \`core::net\`.*
    - Seems ready for FCP now.
    - Josh to leave a comment about how the initial PR should leave the core types unstable, using a stable type alias in std.
- [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)
  - github.com/rust-lang/libs-team/issues/122 *Revamp unstable MaybeUninit APIs*
    - No updates since last meeting.

### 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)
  - rust.tf/103800 *Stabilize \`::{core,std}::pin::pin!\`*
  - rust.tf/105851 *Leak amplification for peek\_mut() to ensure BinaryHeap's invariant is always met*
    - peek_mut allows putting the binary heap in a bad state
    - david's fix changes the heap size to 1 while the PeekMut is alive. (forgetting the PeekMut would leave it at size 1)
    - seems like a good solution
    - this is the only stable way to break the heap structure.
    - there are two unstable methods that could also allow breaking the structure, though.
      - retain() with &T seems fine. Would be a problem with &mut T though.
    - We should document that `BinaryHeap<u32>` (etc.) are guaranteed to be in proper heap order.
    - FCP merge let's go.

### Needs decision

None

### Stalled Tracking Issues

[`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)
