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