[libc-commits] [libc] [libc][docs] Update website to reflect new strategy (PR #168637)

Michael Jones via libc-commits libc-commits at lists.llvm.org
Thu Dec 18 13:57:41 PST 2025


https://github.com/michaelrj-google updated https://github.com/llvm/llvm-project/pull/168637

>From 1f244e495cd19a0ba5d961dccc7f4fa08ed8d63b Mon Sep 17 00:00:00 2001
From: Michael Jones <michaelrj at google.com>
Date: Tue, 4 Nov 2025 17:50:00 +0000
Subject: [PATCH] [libc][docs] Update website to reflect new strategy

The LLVM-libc goals are updated to better reflect the strategy shared
at the LLVM dev meeting 2025.
---
 libc/docs/hand_in_hand.rst | 17 ++++++++++++++++
 libc/docs/index.rst        | 41 +++++++++++++++++---------------------
 2 files changed, 35 insertions(+), 23 deletions(-)
 create mode 100644 libc/docs/hand_in_hand.rst

diff --git a/libc/docs/hand_in_hand.rst b/libc/docs/hand_in_hand.rst
new file mode 100644
index 0000000000000..e0e05ffef6203
--- /dev/null
+++ b/libc/docs/hand_in_hand.rst
@@ -0,0 +1,17 @@
+.. _hand_in_hand:
+
+============
+Hand-in-Hand
+============
+
+TODO: Docs about hand in hand.
+
+Hand-in-hand is a way for other LLVM projects to use libc's high quality internal APIs.
+
+It's intended to be header only and stable at head, but not necessarily safe for mixing and matching.
+
+Libc++ uses it for from_chars<float>
+OpenMP uses it for printf on GPUs
+WIP to let clang use it for constexpr math.
+
+External projects shouldn't rely on the interface being stable.
diff --git a/libc/docs/index.rst b/libc/docs/index.rst
index 7238d1383511e..f88b64ff18472 100644
--- a/libc/docs/index.rst
+++ b/libc/docs/index.rst
@@ -2,12 +2,6 @@
 The LLVM C Library
 ==================
 
-.. warning::
-  LLVM-libc is not yet ABI stable; currently only static linking is supported.
-  LLVM-libc developers retain the right to modify the ABI of types used
-  throughout the library. Another libc should be preferred if ABI stability is
-  a requirement.
-
 .. note::
   LLVM-libc is not fully complete right now. Some programs may fail to build due
   to missing functions. If you would like to help us finish LLVM-libc, check
@@ -18,24 +12,24 @@ The LLVM C Library
 Introduction
 ============
 
-LLVM-libc aspires to a unique place in the software ecosystem.  The goals are:
-
-- Fully compliant with current C23 and POSIX.1-2024 standards.
-- Easily decomposed and embedded: Supplement or replace system C library
-  functionality easily.  This is useful to get consistent math precision across
-  systems, or updated memory operations for newer microarchitectures.  These
-  pieces will work on Linux, MacOS, Windows, and Fuchsia.
-- The creation of fully static binaries without license implications.
-- Increase whole program optimization opportunities for static binaries through
-  ability to inline math and memory operations.
-- Reduce coding errors by coding in modern C++ through the use of lightweight
-  containers during coding that can be optimized away at runtime.
-- Permit fuzzing and sanitizer instrumentation of user binaries including the
-  libc functions.
-- A complete testsuite that tests both the public interface and internal
-  algorithms.
-- `Fuzzing <https://github.com/llvm/llvm-project/tree/main/libc/fuzzing>`__
+LLVM-libc is an implementation of the C standard library written in C++ focused
+on embodying three main principles:
+
+- Modular
+- Multiplatform
+- Community Oriented
+
+Our current goal is to support users who want to make libc part of their
+application. This can be through static linking libc into the application, which
+is common for containerized servers or embedded devices. It can also be through
+using the LLVM-libc internal sources as a library, such as through the
+:ref:`Hand-in-Hand interface<hand_in_hand>`.
+
 
+TODO: Finish list of where LLVM-libc is used.
+LLVM-libc is currently used in Google servers, Pixel Buds, and other Google
+projects. There is an experiemental config to use LLVM-libc in Emscripten.
+Pieces of LLVM-libc are being used in Bionic (Android's libc) and Fuchsia.
 
 .. toctree::
    :hidden:
@@ -65,6 +59,7 @@ LLVM-libc aspires to a unique place in the software ecosystem.  The goals are:
    gpu/index.rst
    uefi/index.rst
    configure
+   hand_in_hand
 
 .. toctree::
    :hidden:



More information about the libc-commits mailing list