---
# System prepended metadata

title: Libs Meeting 2022-01-05
tags: [Minutes, Libs Meetings]

---

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