libc++ Format Status

Overview

This document contains the status of the C++20 Format library in libc++. It is used to track both the status of the sub-projects of the Format library and who is assigned to these sub-projects. This is imperative to effective implementation so that work is not duplicated and implementors are not blocked by each other.

If you are interested in contributing to the libc++ Format library, please send a message to the #libcxx channel in the LLVM discord. Please do not start working on any of the assigned items below.

Sub-Projects in the Format library

Section Description Dependencies Assignee Patch Status First released version
[format.functions] Format functions - Improve performance format_to_n   Mark de Wever D110499 Review  
[format.functions] Format functions - Improve performance formatted size   Mark de Wever D110498 Review  
[format.functions] P2216 - Compile-time checks   Mark de Wever D121530 Review  
[format.functions] P2216 - Binary size   Mark de Wever D110494 Complete Clang 14
             
[time.syn] Formatter chrono::duration<Rep, Period>   Mark de Wever   In Progress  
[time.syn] Formatter chrono::sys_time<Duration>   Mark de Wever   In Progress  
[time.syn] Formatter chrono::utc_time<Duration> A <chrono> implementation Not assigned      
[time.syn] Formatter chrono::tai_time<Duration> A <chrono> implementation Not assigned      
[time.syn] Formatter chrono::gps_time<Duration> A <chrono> implementation Not assigned      
[time.syn] Formatter chrono::file_time<Duration>   Not assigned      
[time.syn] Formatter chrono::local_time<Duration>   Not assigned      
[time.syn] Formatter chrono::local-time-format-t<Duration> A <chrono> implementation Not assigned      
[time.syn] Formatter chrono::day   Mark de Wever   In Progress  
[time.syn] Formatter chrono::month   Mark de Wever   In Progress  
[time.syn] Formatter chrono::year   Mark de Wever   In Progress  
[time.syn] Formatter chrono::weekday   Mark de Wever   In Progress  
[time.syn] Formatter chrono::weekday_indexed   Mark de Wever   In Progress  
[time.syn] Formatter chrono::weekday_last   Mark de Wever   In Progress  
[time.syn] Formatter chrono::month_day   Mark de Wever   In Progress  
[time.syn] Formatter chrono::month_day_last   Mark de Wever   In Progress  
[time.syn] Formatter chrono::month_weekday   Mark de Wever   In Progress  
[time.syn] Formatter chrono::month_weekday_last   Mark de Wever   In Progress  
[time.syn] Formatter chrono::year_month   Mark de Wever   In Progress  
[time.syn] Formatter chrono::year_month_day   Mark de Wever   In Progress  
[time.syn] Formatter chrono::year_month_day_last   Mark de Wever   In Progress  
[time.syn] Formatter chrono::year_month_weekday   Mark de Wever   In Progress  
[time.syn] Formatter chrono::year_month_weekday_last   Mark de Wever   In Progress  
[time.syn] Formatter chrono::hh_mm_ss<duration<Rep, Period>>   Mark de Wever   In Progress  
[time.syn] Formatter chrono::sys_info A <chrono> implementation Not assigned      
[time.syn] Formatter chrono::local_info A <chrono> implementation Not assigned      
[time.syn] Formatter chrono::zoned_time<Duration, TimeZonePtr> A <chrono> implementation Not assigned      

Misc. Items and TODOs

(Please mark all Format-related TODO comments with the string TODO FMT, so we can find them easily.)

Paper and Issue Status

Number Name Assignee Patch Status First released version
P0645 Text Formatting Mark de Wever   Complete Clang 14
P1652 Printf corner cases in std::format Mark de Wever D103433, D114001 Complete Clang 14
P1892 Extended locale-specific presentation specifiers for std::format Mark de Wever D103368 Complete Clang 14
P1868 width: clarifying units of width and precision in std::format (Implements the unicode support.) Mark de Wever D103413 D103425 D103670 Complete Clang 14
P2216 std::format improvements Mark de Wever   In Progress  
P2418 Add support for std::generator-like types to std::format Mark de Wever   In Progress  
           
P1361 Integration of chrono with text formatting Mark de Wever   In Progress  
P2372 Fixing locale handling in chrono formatters Mark de Wever   In Progress