# Libs Meeting 2022-01-05 ###### tags: `Libs Meetings` `Minutes` **Meeting Link**: https://meet.jit.si/rust-libs-meeting-ujepnbwg2lzqgt6wvrndwimi **Attendees**: Amanieu, Jane, Josh Triplett, Josh Stone, Mara ## Agenda - Triage: empty! - Talk about fmt::Arguments - Mara to present - Anything else? ## fmt::Arguments - Now used in all `panic!` calls, even single-argument ones - Added compile-time overhead and inclusion of more code in more cases - fmt::Arguments has three pointer/size pairs: static strings between placeholders, optional array of flags (width/fill/align/etc), array of object/format-func pairs - Possibility: Turn fmt::Arguments into a closure, whose code does all the formatting calls, and whose captures are the arguments being formatted - Upside: reuse the closure machinery - Upside: minimize the non-static size to just the captures of the closure - Downside: more code generation - Possibility: Pointer to a single array of "commands" to be interpreted - Commands: - PrintStr - PrintArg - SetFlags - SetPrec - SetPrecArg - ... - End - Possibility: Encode those "commands" with bit-packing, and have a separate array of arguments - We should try this last one, and try the closure case - Massive open question: What are our selection criteria?