# 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)