llvm / llvm/llvm-project

[libc++] Format Status

Open
#220,017 2 comments 0 reactions 0 assignees View on GitHub
format libc++ metaissue
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

- [x] [P1361R2](https://wg21.link/P1361R2) [P2372R3](https://wg21.link/P2372R3) Formatting chrono
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::duration` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::sys_time` | LLVM 17
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::utc_time` | LLVM 20
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::tai_time` | LLVM 21
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::gps_time` | LLVM 21
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::file_time` | LLVM 17
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::local_time` | LLVM 17
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::local-time-format-t` | Nothing To Do
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::day` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::month` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::year` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::weekday` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::weekday_indexed` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::weekday_last` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::month_day` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::month_day_last` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::month_weekday` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::month_weekday_last` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::year_month` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::year_month_day` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::year_month_day_last` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::year_month_weekday` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::year_month_weekday_last ` | LLVM 16
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::hh_mm_ss>` | LLVM 17
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::sys_inf` | LLVM 19
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::local_info ` | LLVM 19
- [x] [[time.syn]](https://wg21.link/time.syn) Formatter `chrono::zoned_time` | LLVM 19
- [ ] [P2693R1](https://wg21.link/P2693R1) Formatting `thread::id` and `stacktrace`
- [x] [[thread.thread.id]](https://wg21.link/thread.thread.id) Formatting `thread::id` | LLVM 17
- [ ] [[stacktrace.format]](https://wg21.link/stacktrace.format) Formatting `stacktrace`
- [x] [P0645](https://wg21.link/P0645) | C++20 | Text Formatting | LLVM14
- [x] [P1652](https://wg21.link/P1652) | C++20 | Printf corner cases in std::format | LLVM 14
- [x] [P1892](https://wg21.link/P1892) | C++20 | Extended locale-specific presentation specifiers for std::format | LLVM 14
- [x] [P1868](https://wg21.link/P1868) | C++20 | width: clarifying units of width and precision in std::format (Implements the unicode support.) | LLVM 14
- [x] [P2216](https://wg21.link/P2216) | C++20 | `std::format` improvements | LLVM 15
- [x] [P2418](https://wg21.link/P2418) | C++20 | Add support for `std::generator`-like types to `std::format` | LLVM 15
- [x] [P2093R14](https://wg21.link/P2093R14) | C++23 | Formatted output | LLVM 18
- [x] [P2286R8](https://wg21.link/P2286R8) | C++23 | Formatting Ranges | LLVM 16
- [x] [P2508R1](https://wg21.link/P2508R1) | C++23 | Exposing std::basic-format-string | LLVM 15
- [x] [P2585R0](https://wg21.link/P2585R0) | C++23 | Improving default container formatting | LLVM 17
- [x] [P2539R4](https://wg21.link/P2539R4) | C++23 | Should the output of std::print to a terminal be synchronized with the underlying stream? | LLVM 18
- [x] [P2713R1](https://wg21.link/P2713R1) | C++23 | Escaping improvements in `std::format` | LLVM 19
- [x] [P2675R1](https://wg21.link/P2675R1) | C++23 | format’s width estimation is too approximate and not forward compatible | LLVM 17
- [x] [P2572R1](https://wg21.link/P2572R1) | C++23 | `std::format` fill character allowances | LLVM 17
- [ ] [P2693R1](https://wg21.link/P2693R1) | C++23 | Formatting `thread::id` and `stacktrace`
- [x] [P2510R3](https://wg21.link/P2510R3) | C++26 | Formatting pointers | LLVM 17
- [ ] [P2757R3](https://wg21.link/P2757R3) | C++26 | Type-checking format args
- [x] [P2637R3](https://wg21.link/P2637R3) | C++26 | Member visit | LLVM 19
- [x] [P2905R2](https://wg21.link/P2905R2) | C++26 DR | Runtime format strings | LLVM 18
- [x] [P2918R2](https://wg21.link/P2918R2) | C++26 | Runtime format strings II | LLVM 18
- [x] [P2909R4](https://wg21.link/P2909R4) | C++26 DR | Fix formatting of code units as integers (Dude, where’s my char?) | LLVM 18
- [ ] [P3107R5](https://wg21.link/P3107R5) | C++26 DR | Permit an efficient implementation of std::print
- [x] [P3142R0](https://wg21.link/P3142R0) | C++26 DR | Printing Blank Lines with `println` | LLVM 19
- [ ] [P2845R8](https://wg21.link/P2845R8) | C++26 | Formatting of `std::filesystem::path`
- [x] [P1361](https://wg21.link/P1361) | C++20 | Integration of chrono with text formatting | LLVM 21
- [x] [P2372](https://wg21.link/P2372) | C++20 | Fixing locale handling in chrono formatters | LLVM 21
- [ ] [P2419R2](https://wg21.link/P2419R2) | C++23 DR | Clarify handling of encodings in localized formatting of chrono types

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the unchecked proposal entries, especially stacktrace formatting, type-checking format arguments, efficient std::print, filesystem::path formatting, and localized chrono encodings, along with their linked standard clauses. The work is done when the selected proposal is implemented in libc++ and its checklist entry can be marked complete; this issue names no source files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.