Revert "Roll libc++ from d816ed0274ed to 64f64c14ae2f (284 revisions)" This reverts commit 821ce3cd87553b09a80b5004176f6f0928844c90. Reason for revert: Tree is failing Failure Link: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8665412825518147009/+/u/compile/raw_io.output_text_failure_summary_ Original change's description: > Roll libc++ from d816ed0274ed to 64f64c14ae2f (284 revisions) > > https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/d816ed0274ed..64f64c14ae2f > > - Removes obsolete `_LIBCPP_NO_ABI_TAG` from `buildtools/third_party/libc++/__config_site` to match `_LibcxxExplicitABIAnnotations` pragma behavior and avoid `abi_tag` redeclaration conflicts in `<__locale_dir/support/windows.h>` (#222081). > - Adds `//third_party/libc++/src/src/debugging.cpp` to `buildtools/third_party/libc++/BUILD.gn` for C++26 `<debugging>` (#81447) and removes `-Wundef` in `buildtools/third_party/libc++/BUILD.gn` (#236806). > - Adds missing `<cstddef>` / `std::size_t` in `base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h`, `base/containers/to_vector.h`, and `base/numerics/basic_ops_impl.h` after `<new>` stopped transitively including `<cstddef>` (#222814). > - Binds `network::kFencedFrameAllowedFeatures` to a local `base::span` in `services/network/public/cpp/permissions_policy/permissions_policy.cc` to avoid `-Wunreachable-code` when `kFencedFrameAllowedFeatures` is an empty `constexpr base::span` (#213752). > > 2026-11-03 anant1234466@gmail.com [libc++] Implement LWG4294: bitset(const CharT*) constructor needs to be constrained (#238119) > 2026-11-02 vitalybuka@google.com [libc++][test] Avoid assert() in gnu/hash/specializations.verify.cpp (#237485) > 2026-11-03 github.snugness349@passinbox.com [libc++][NFC] Mark LWG2859 as "Nothing To Do" (#236127) > 2026-11-02 luca.bacci982@gmail.com [libc++][windows] Use _wsetlocale() in __locale_guard (#160479) > 2026-11-02 ldionne.2@gmail.com [libc++] Only refine benchmark changes of at least 10% (#238012) > 2026-11-02 aotodev@gmail.com [libc++][ranges] Implement LWG3904: `lazy_split_view::outer-iterator`'s const-converting constructor isn't setting `trailing_empty_` (#237550) > 2026-10-31 mike.kazakov@gmail.com [libc++][pstl] Add serial implementations of std::inclusive_scan and std::transform_inclusive_scan (#236219) > 2026-10-31 aotodev@gmail.com [libc++][ranges] Implement LWG3797: `elements_view` insufficiently constrained (#236930) > 2026-10-30 mike.kazakov@gmail.com [libc++] Added a benchmark for std::reduce with a trivial reduction operator (std::plus) (#236853) > 2026-10-30 ldionne.2@gmail.com [libc++] Submit the results of PR benchmarks to LNT and link to them (#237102) > 2026-10-30 nikolasklauser@berlin.de [libc++] Remove unused type_info constructor (#235739) > 2026-10-30 nikolasklauser@berlin.de [libc++] Add a few _LIBCPP_HIDE_FROM_ABI which have been accidentally removed in #201722 (#236733) > 2026-10-30 nikolasklauser@berlin.de [libc++][NFC] Move checks whether mutex/condition_variable are trivial to their headers (#236806) > 2026-10-30 mike.kazakov@gmail.com [libc++][pstl] Introduce a "statpart" backend (#230540) > 2026-10-29 ldionne.2@gmail.com [libc++] Produce LNT v5 reports from the A/B benchmark job (#237001) > 2026-10-29 liza@chromium.org [libcxx] Optimize __split_buffer::__relocate by using size-based __set_valid_range (#216822) > 2026-10-29 kisuhorikka@gmail.com [libc++] Add __uninitialized_allocator_{fill_n,value_construct_n,move} and use them in vector (#167112) > 2026-10-29 de34@live.cn [libc++][test] Remove `XFAIL` for LLVM libc in `valarray` tests (#236629) > 2026-10-28 ldionne.2@gmail.com [libc++] Remove stale XFAIL from small_buffer.pass.cpp (#234407) > 2026-10-28 ldionne.2@gmail.com [libc++] Use constant initialization for the random_shuffle engine (#234815) > 2026-10-28 public@kits.net [libcxx][test-support] Implement fancy_pointer_allocator (#196187) > 2026-10-28 mike.kazakov@gmail.com [libc++] Make __thread_hardware_concurrency() an alias to an existing symbol (#234575) > 2026-10-28 nikolasklauser@berlin.de Reapply "[libc++] Fix incorrect size check when growing std::string" (#234545) (#234551) > 2026-10-27 ldionne.2@gmail.com [libc++] Make detect-changepoints much faster (#236245) > 2026-10-27 zerico2005@gmail.com [libc++][test][NFC] Use correct number of digits for <numbers> ground-truth values (#233664) > 2026-10-27 github.snugness349@passinbox.com [libc++][ranges] Mark LWG3532 as resolved (#235016) > 2026-10-27 aotodev@gmail.com [libc++] Implement LWG4245: Operators that interact with counted_iterator and default_sentinel_t should be noexcept (#235445) > 2026-10-26 ldionne.2@gmail.com [ci] Create a monorepo-wide workflow to submit to LNT (#235863) > 2026-10-25 michaelbuch12@gmail.com [libc++][lldb] Add initial LLDB data-formatters (#187677) > 2026-10-24 mike.kazakov@gmail.com [libc++] Add benchmarks for std::reduce and std::transform_reduce (#233374) > 2026-10-23 martin@martin.st [libcxx] [test] Update XFAILs for a clang-cl bug fixed in clang 23 (#234630) > 2026-10-23 mike.kazakov@gmail.com [libc++][pstl] Add serial implementations of the set operations (#233783) > 2026-10-23 vishanksinghh@gmail.com [libc++] Implement LWG3749: `common_iterator` should handle integer-class difference types (#233606) > 2026-10-22 rkleckner@nvidia.com [libc++][docs] Remove stale release notes from toctree (#234792) > 2026-10-22 ldionne.2@gmail.com [libc++] Request refinement commits from the benchmark cron job (#234739) > 2026-10-22 ldionne.2@gmail.com [libc++] Add a tool to select commits to narrow down benchmark changes (#234716) > 2026-10-22 zibi@ca.ibm.com [libc++][filesystem] Fix truncation in vformat_string dynamic fallback (#203531) > 2026-10-22 ldionne.2@gmail.com [libc++] Allow detect-changepoints to analyze several series at once (#234651) > 2026-10-22 ldionne.2@gmail.com [libc++] Share the benchmark paths and the LNT runs listing between the LNT tools (#234616) > 2026-10-22 ldionne.2@gmail.com [libc++][NFC] Update the LNT README to use GET /series (#234619) > 2026-10-22 ldionne.2@gmail.com [libc++] Clean up leftover std::print availability workarounds (#234379) > 2026-10-22 ldionne.2@gmail.com [libc++][docs] Fix the name of the availability attribute macro (#234380) > 2026-10-22 npopov@redhat.com Revert "[libc++] Fix incorrect size check when growing std::string" (#234545) > 2026-10-22 nikolasklauser@berlin.de [libc++] Fix incorrect size check when growing std::string (#232737) > 2026-10-21 sharjeelkhan@google.com [libc++][Android] Update compiler and sysroot for Android libc++ builders (#234389) > 2026-10-21 ldionne.2@gmail.com [libc++] Actually run union_tests() in invoke.pass.cpp (#234205) > 2026-10-22 henrichataing@google.com [libc++] Replace integrals helper by types::integer_types (#233923) > 2026-10-22 nikolasklauser@berlin.de [libc++] Remove old release notes (#234169) > 2026-10-22 hghristov.rmm@gmail.com [libc++] Flat containers should reject `vector<bool, Alloc>` (#224886) > 2026-10-21 joker.eph@gmail.com [libc++] Disable automatic module scanning on ARM CI builders (#232947) > 2026-10-21 github.snugness349@passinbox.com [libc++] Add coverage for corner case in enumerate_view::size test (#233777) > 2026-10-21 mike.kazakov@gmail.com [libc++][pstl][NFC] Sort the forward declarations in backend_fwd.h (#233477) > 2026-10-21 ndesaulniers@google.com [libcxx][docker] Update android libc++ builders (#232887) > 2026-10-21 nikolasklauser@berlin.de Reapply "[libc++] Remove __libcpp_allocate" (#222814) (#229771) > 2026-10-21 nikolasklauser@berlin.de [libc++] Replace __libcpp_allocate with std::allocator in small_bufer.h (#234158) > 2026-10-20 michaelrj@google.com [libcxx][libc] add missing flag to libc config (#233935) > 2026-10-20 ldionne.2@gmail.com [libc++] Add a tool to find when a benchmark result changed (#233656) > 2026-10-20 nikolasklauser@berlin.de [libc++] Optimize filebuf::seekoff (#211788) > 2026-10-20 brad@comstyle.com [libc++] Mark xopen_source test unsupported on OpenBSD (#233710) > 2026-10-20 vishanksinghh@gmail.com [libc++] Mark LWG4460 as Nothing To Do (#232252) > 2026-10-19 ldionne.2@gmail.com [libc++] Record more information about commits submitted to LNT (#233634) > 2026-10-19 mike.kazakov@gmail.com [libc++] Introduce a free function __thread_hardware_concurrency() (#232284) > 2026-10-19 mike.kazakov@gmail.com [libc++][pstl] Make the serial backend the ultimate fallback for all backends (#233421) > 2026-10-19 mike.kazakov@gmail.com [libc++][pstl] Add more tests of parallel std::for_each[_n] (#231918) > 2026-10-18 michiel.van.slobbe+github@gmail.com [libc++] Don't claim strong emplace guarantee for vector/deque of throwing-move types (#229686) > 2026-10-18 ckennelly@ckennelly.com [libc++] Fix use-after-free during self-assignment (#225296) > 2026-10-18 emmettzhang2020@outlook.com [libc++] Granularize <execution> (#229315) > 2026-10-16 ldionne.2@gmail.com [libc++] Remove the LNT v4 test suite schemas (#232897) > 2026-10-16 ldionne.2@gmail.com [libc++] Bump the LNT machines to the latest version of the test suite (#232895) > 2026-10-16 ldionne.2@gmail.com [libc++] Switch the libc++ benchmark pipelines to LNT v5 (#232888) > 2026-10-16 ldionne.2@gmail.com [libc++] Update the LNT tooling to LNT v5 (#232866) > 2026-10-16 alex@alexrp.com [libcxx] fix missing `__get_locale_encoding()` for OpenBSD (#228306) > 2026-10-16 hima130602@gmail.com [libc++] Don't export ABI tagged __str_to_float_c_locale specializations on MinGW (#229456) > 2026-10-15 vladi.krapp@arm.com [libcxx] Include <ctime> directly in header that uses struct tm (#231158) > 2026-10-14 ldionne.2@gmail.com [libc++] Extract running the benchmarks into reusable workflows (#232168) > 2026-10-14 ldionne.2@gmail.com [libc++] Extract LNT benchmark validation into a reusable workflow (#232155) > 2026-10-14 ldionne.2@gmail.com [libc++] Remove --allow-missing-machine from plan-benchmarks (#232042) > 2026-10-14 nikolasklauser@berlin.de [libc++] Remove redundant `_LIBCPP_HIDE_FROM_ABI` from detail headers a-c (#201722) > 2026-10-14 ldionne.2@gmail.com [libc++] Add LNT v5 schemas for the libcxx and libstdcxx test suites (#231998) > 2026-10-14 zerico2005@gmail.com [libcxx] Fix `long double` literals in <numbers> (#222830) > 2026-10-14 nikolasklauser@berlin.de [libc++] Avoid passing both sentinel and size around in vector (#214132) > 2026-10-14 nikolasklauser@berlin.de [libc++] Use a custom once_flag implementation for locale::id::__get() (#212235) > 2026-10-14 nikolasklauser@berlin.de [libc++] Remove workaround to make fpclassify constexpr for the UCRT (#224226) > 2026-10-14 nikolasklauser@berlin.de [libc++] Optimize hash table lookup (#230430) > 2026-10-13 michaelrj@google.com [libcxx][NFC] remove XFAIL on stdio_h.compile.pass (#231694) > 2026-10-13 michaelrj@google.com [libcxx][libc] Remove last LLVM-libc carveout (#230294) > 2026-10-13 ldionne.2@gmail.com [libc++] Avoid guard variables for the error_category singletons (#231282) > 2026-10-13 ldionne.2@gmail.com [libc++] Fix typo in FreeBSD macro for <debugging> (#231149) > 2026-10-13 aidengrossman@google.com [Github][libcxx] Bump CI container (#227787) > 2026-10-13 nikolasklauser@berlin.de [libc++] Assume separate storage in vector (#225325) > 2026-10-13 ldionne.2@gmail.com [libc++] Fix search_n with an invalid count (#223747) > 2026-10-13 henrichataing@google.com [libc++] Suppress unsigned-integer-overflow warning in <charconv> (#225801) > 2026-10-13 nikolasklauser@berlin.de [libc++] Optimize basic_string::operator=(const value_type*) (#227622) > 2026-10-13 aidengrossman@google.com [libcxx] Don't use #define __unused in libcxx-03 for glibc (#230209) > 2026-10-13 aidengrossman@google.com [libcxx] Fix -Wshift-counter-overfliw in cxx03 bitset (#230208) > 2026-10-13 nikolasklauser@berlin.de [libc++] Don't explicitly rethrow in flat container function try blocks (#230988) > 2026-10-13 nikolasklauser@berlin.de [libc++] Merge the various search loops in __hash_table (#230440) > 2026-10-12 mike.kazakov@gmail.com [libc++][pstl] Corrected the return types of some parallel algorithms that were returning "void" (#230586) > 2026-10-12 xbcnn@163.com [libc++] Avoid key_eq calls in hash_table rehash (#216551) > 2026-10-11 joker.eph@gmail.com [docs] Update obsolete Phabricator references for GitHub workflows (#229542) > 2026-10-11 vishanksinghh@gmail.com [libc++][chrono][threading] Implement LWG 3504: `condition_variable::wait_for` is overspecified (#222443) > 2026-10-11 karolis.spukas@gmail.com [libc++] Implement LWG2991: variant copy constructor missing noexcept(see below) (#230241) > 2026-10-10 karolis.spukas@gmail.com [libc++] Implement LWG4290: Missing Mandates clauses on is_sufficiently_aligned (#229765) > 2026-10-09 ldionne.2@gmail.com [libc++] Mark type_order test as unsupported on recent AppleClang (#230210) > 2026-10-09 nikolasklauser@berlin.de [libc++] Optimize unordered_{,multi}{map,set} move construct with allocators (#227955) > 2026-10-08 rkleckner@nvidia.com [libc++][docs] Use project-local links in release notes (#228624) > 2026-10-08 haowei@google.com [libc++] Include <ctime> in <__locale_dir/support/fuchsia.h> (#229957) > 2026-10-08 jpenix@quicinc.com [libc++] Reorder link flags in exception_guard.odr.sh.cpp (#229589) > 2026-10-08 3440910457@qq.com [libc++] Fix ill-formed return in function_ref's static-call path (#228868) > 2026-10-08 ldionne.2@gmail.com [libc++] Fix size_t overflow in make_shared<T[]> and allocate_shared<T[]> (#223735) > 2026-10-08 public@kits.net [libcxx][test-support] Improve thread_unsafe_shared_ptr (#195932) > 2026-10-08 de34@live.cn [libc++][test] Remove spurious `REQUIRES: has-fblocks` (#227972) > 2026-10-07 michaelrj@google.com [libcxx] Fix indirect includes for nolocale (#229601) > 2026-10-07 wtranviet@proton.me [libc++][docs] Clarify documentation for `is_debugger_present` (#229907) > 2026-10-07 hghristov.rmm@gmail.com [libc++] Implement `<debugging>` (#81447) > 2026-10-07 mike.kazakov@gmail.com [libc++] Allow internal functions from atomic_sync.h to be used in C++17 (#224356) > 2026-10-07 mike.kazakov@gmail.com [libc++][pstl] Implement LWG3552: Parallel specialized memory algorithms should require forward iterators (#228462) > 2026-10-07 github.snugness349@passinbox.com [libc++][ranges][enumerate_view] Update sentinel `equal` test (#222331) > 2026-10-07 1w3r5yviper2077@gmail.com [libc++][NFC] Fix include guards in __concepts/ (#229398) > 2026-10-07 hima130602@gmail.com [AIX][libc++] Forward-declare locale functions in aix.h when _XOPEN_SOURCE < 700 (#220508) > 2026-10-06 ldionne.2@gmail.com [libc++] Pass -fsized-deallocation to the sized_delete tests on AppleClang 23 (#229257) > 2026-10-06 ldionne.2@gmail.com [libc++] Enable _LIBCPP_DIAGNOSE_IF on AppleClang (#229187) > 2026-10-06 ldionne.2@gmail.com [libc++] Guard unchecked uses of wchar_t and char8_t in tests (#229255) > 2026-10-06 ekeane@nvidia.com [libcxx] Add 'DoNotOptimize' to a test that is missing it. (#228253) > 2026-10-05 aidengrossman@google.com [libcxx] Also ignore -Wshift-count-overflow in clang (#229087) > 2026-10-04 aidengrossman@google.com [libcxx] Add user to linux-builder docker image (#228933) > 2026-10-02 aidengrossman@google.com [libcxx] Bump clang in CI container to v24 (#227930) > 2026-10-02 aidengrossman@google.com [libcxx] Ensure CLANG_VERSION_MAJOR is defined in clang-tidy checks (#228127) > 2026-10-02 de34@live.cn [libc++][test] Remove some `XFAIL` for LLVM libc in multi-threaded tests (#228036) > 2026-09-30 ldionne.2@gmail.com [libc++] Remove unused generalization from the libc++ benchmarking pipeline (#227369) > 2026-09-30 nikolasklauser@berlin.de [libc++] Optimize vector::emplace_back slow path (#222016) > 2026-09-30 lucian.popescu187@gmail.com [libc++] Fix rvalue_iterator arithmetic operators in tests (#220686) > 2026-09-30 nikolasklauser@berlin.de [libc++] Optimize basic_string::operator= (#224535) > 2026-09-29 ldionne.2@gmail.com [libc++] Run Linux benchmarks on the premerge k8s runner set (#227547) > 2026-09-29 ldionne.2@gmail.com [libc++] Bump machines to latest test suite (#227528) > 2026-09-29 rkleckner@nvidia.com [libc++][docs] Convert documentation from reST to Markdown (batch 2) (#222064) > 2026-09-29 rkleckner@nvidia.com [libc++][docs] Rename documentation files to Markdown (batch 2) (#222062) > 2026-09-29 ldionne.2@gmail.com [libc++] Fix calling push_heap on an empty range in the push_heap benchmark (#227076) > 2026-09-29 ldionne.2@gmail.com [libc++] Remove unnecessary container constructions in setup code (#216141) > 2026-09-29 ldionne.2@gmail.com [libc++][NFC] Fix typos in the LNT tooling (#227347) > 2026-09-29 ldionne.2@gmail.com [libc++] Add coverage for push_range on stack/queue with non-default underlying containers (#210730) > 2026-09-29 ldionne.2@gmail.com [libc++] Fix use-after-free in the monotonic_buffer benchmark (#227072) > 2026-09-29 ldionne.2@gmail.com [libc++] Use a union for uninitialized storage in associative container benchmarks (#227068) > 2026-09-29 ldionne.2@gmail.com [libc++] Fix out-of-bounds read in the associative container query benchmarks (#227070) > 2026-09-29 ldionne.2@gmail.com [libc++] Fix "leak" of PMR resource in benchmark (#216114) > 2026-09-29 ldionne.2@gmail.com [libc++] Encode the standard version in the ABI tag (#218527) > 2026-09-29 aidengrossman@google.com [libcxx] Delete runner set image versions (#227141) > 2026-09-28 ndesaulniers@google.com [libc++][chrono] Initialize optional tm_zone member in __convert_to_tm (#220068) > 2026-09-28 ldionne.2@gmail.com [libc++] Use a self-contained job to run libstdc++ benchmarks (#226985) > 2026-09-28 nikolasklauser@berlin.de [libc++] Add a benchmark for string::append (#226559) > 2026-09-27 aidengrossman@google.com [libcxx] Still use CMake 3.31 in the CI image (#226749) > 2026-09-28 ykiko@clice.io [libc++][format] Don't leave the output buffer full after a bulk write (#226791) > 2026-09-27 Jake.egan@ibm.com [libc++][AIX] Add system library path via blibpath for lldb (#223837) > 2026-09-27 rkleckner@nvidia.com [libc++][docs] Convert documentation from reST to Markdown (batch 1) (#221513) > 2026-09-27 rkleckner@nvidia.com [libc++][docs] Rename documentation files to Markdown (batch 1) (#221512) > 2026-09-27 artafinde@gmail.com [libc++][chrono] Fix years/months periods on GCC/i386 (#223669) > 2026-09-27 thakis@chromium.org [libc++] Port #200996 to ostream (#226372) > 2026-09-26 mike.kazakov@gmail.com [libc++][pstl] Add more benchmarks of the parallel algorithms (#225908) > 2026-09-26 vyordangiovani@gmail.com [libc++] Add static_assert diagnostics for LWG3133 named requirements (#212360) > 2026-09-26 de34@live.cn [libc++][NFC] Avoid empty namespace in internal headers of `<ranges>` (#226034) > 2026-09-26 mike.kazakov@gmail.com [libc++][pstl] Implementation of parallel std::swap_ranges() based on parallel __for_each (#224967) > 2026-09-25 ldionne.2@gmail.com [libc++] Add a benchmark machine for libstdc++ (#226346) > 2026-09-25 nikolasklauser@berlin.de [libc++] Add benchmark for string::pop_back() (#223729) > 2026-09-25 hima130602@gmail.com [libcxx][locale] Refactor strtonum functions using __str_to_float_c_locale<FloatT> (#222081) > 2026-09-24 ldionne.2@gmail.com [libc++] Take the benchmark testing configuration from the test suite (#226267) > 2026-09-24 rkleckner@nvidia.com [docs] Require MyST for Sphinx documentation builds (#223829) > 2026-09-24 aidengrossman@google.com [Github] Bump libcxx image to ubuntu 26.04 (#225550) > 2026-09-24 ldionne.2@gmail.com [libc++] Re-apply "Build GoogleBenchmark directly from Lit" (#225856) > 2026-09-24 ldionne.2@gmail.com [libc++] Bump macOS CI runners from 26.5 to 26.6.2 (#226012) > 2026-09-24 aidengrossman@google.com [libcxx] Update docs for updating the CI container image (#226018) > 2026-09-24 de34@live.cn [libc++][docs] Mark LWG2727 Complete in LLVM 24 (#225606) > 2026-09-23 ldionne.2@gmail.com [libc++][docs] Fix typos in TestingLibcxx.rst (#225983) > 2026-09-23 ldionne.2@gmail.com [libc++] Don't pass a path lvalue to DoNotOptimize in the filesystem benchmark (#225504) > 2026-09-23 ldionne.2@gmail.com [libc++] Encode Lit configuration parameters in machines.json (#225601) > 2026-09-23 aokblast@FreeBSD.org [libcxx] Speed up xsgetn for always_noconv (#212010) > 2026-09-23 haowei@google.com Revert "[libc++] Build GoogleBenchmark directly from Lit" (#225620) > 2026-09-22 ldionne.2@gmail.com [libc++] Extract building libc++ into a composite action (#224670) > 2026-09-22 ldionne.2@gmail.com [libc++] Build GoogleBenchmark directly from Lit (#224192) > 2026-09-22 ldionne.2@gmail.com [libc++] Add missing <cstring> include in the string benchmark (#225501) > 2026-09-22 michaelrj@google.com [libcxx] Enable threads on LLVM-libc (#224436) > 2026-09-22 aidengrossman@google.com [libcxx] Simplify container images (#225214) > 2026-09-22 de34@live.cn [libc++] Implement P3450R1: Extend `std::is_within_lifetime` (#201053) > 2026-09-21 wtranviet@proton.me [libc++] Remove `_Tag` template parameter from __capacity_aware_iterator (#224983) > 2026-09-21 nikolasklauser@berlin.de [libc++] Don't pass the sentinel to vector::__{insert,init}_with_size (#224583) > 2026-09-20 wtranviet@proton.me [libc++] Add a compact, bounded iterator (#208271) > 2026-09-20 hghristov.rmm@gmail.com [libc++] Update container adaptors' type verification tests (#224810) > 2026-09-19 lucas.chollet@free.fr [libcxx] Avoid a busy-loop in atomic's lost_wakeup.pass.cpp (#211242) > 2026-09-18 mike.kazakov@gmail.com [libc++][pstl] Implementation of parallel std::uninitialized_(copy|move)(_n) based on parallel __for_each (#223229) > 2026-09-18 ldionne.2@gmail.com [libc++] Locate libstdc++ by querying GCC in the libstdc++ test configuration (#224335) > 2026-09-18 ldionne.2@gmail.com [libc++] Allow specifying a configuration in test-at-commit (#224381) > 2026-09-18 nikolasklauser@berlin.de [libc++] Add some basic benchmarks for std::regex (#223633) > 2026-09-18 hghristov.rmm@gmail.com [libc++] Refactor container's types.pass.cpp tests (#223602) > 2026-09-17 michaelrj@google.com [libcxx] Update libatomic check (#224162) > 2026-09-17 ldionne.2@gmail.com [libc++] Include some Lit features in LNT submissions (#218043) > 2026-09-17 michaelrj@google.com [libcxx][libc] Update LLVM-libc link list (#224164) > 2026-09-17 ldionne.2@gmail.com [libc++] Automatically detect the OS in benchmark jobs (#224386) > 2026-09-17 michaelrj@google.com [libcxx][libc] Update LLVM-libc/compiler-rt config (#224160) > 2026-09-17 nikolasklauser@berlin.de [libc++] Move _LIBCPP_GET_C_LOCALE to the locale base API (#222924) > 2026-09-17 nikolasklauser@berlin.de [libc++] Fix performance regression in std::num_put (#223334) > 2026-09-16 mike.kazakov@gmail.com [libc++][pstl] Benchmark for parallel std::for_each (#222153) > 2026-09-16 ldionne.2@gmail.com [libc++][ci] Retarget the ARM BuildKite runners (#224107) > 2026-09-16 ldionne.2@gmail.com [libc++] Fix query benchmarks for associative containers (#216065) > 2026-09-16 ldionne.2@gmail.com [libc++] Return a const reference from get_key in benchmarks (#216088) > 2026-09-16 ldionne.2@gmail.com [libc++] Reword confusing warning message about AppleClang version (#222380) > 2026-09-16 mike.kazakov@gmail.com [libc++][pstl] Use libdispatch on Apple platforms by default (#223240) > 2026-09-16 yfyang@google.com [libc++] Skip including langinfo.h when unused (#223749) > 2026-09-16 nikolasklauser@berlin.de [libc++] Optimize string::erase (#223721) > 2026-09-16 nikolasklauser@berlin.de [libc++] Take the mersenne twister ABI break unconditionally (#222700) > 2026-09-15 ldionne.2@gmail.com [libc++] Don't assume a valid range in find_if for empty inputs (#213752) > 2026-09-15 me@eisenwave.net [libc++] Implement `<bit>` parts of P3793R2 Better shifting (#219389) > 2026-09-15 hghristov.rmm@gmail.com [libc++][deque] Apply `[[nodiscard]]` to `deque::get_allocator` (#223599) > 2026-09-14 hghristov.rmm@gmail.com [libc++][test-suite][NFC] Move `unused_variables` tests (#223234) > 2026-09-14 nikolasklauser@berlin.de [libc++] Move _LIBCPP_HAS_COND_CLOCKWAIT into condition_variable.h (#222904) > 2026-09-14 nikolasklauser@berlin.de [libc++] Optimize string copy construction (#222021) > 2026-09-14 nikolasklauser@berlin.de [libc++][NFC] Remove some unused functions from to_chars_integral.h (#223130) > 2026-09-14 nikolasklauser@berlin.de [libc++] Provide aligned allocation function iff the compiler claims support (#219199) > 2026-09-12 de34@live.cn [libc++] Test LWG4113: Disallow `has_unique_object_representations<Incomplete[]>` (#169446) > 2026-09-11 de34@live.cn [libc++][test] Remove non-functional `constexpr` in three-way comparison test for `variant` (#222837) > 2026-09-11 nikolasklauser@berlin.de [libc++][NFC] Simplify __to_gcc_order by avoiding constexprness (#220940) > 2026-09-11 nikolasklauser@berlin.de [libc++] Make _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE part of the locale base API (#219196) > 2026-09-10 aidengrossman@google.com Revert "[libc++] Remove __libcpp_allocate" (#222814) > 2026-09-10 nikolasklauser@berlin.de [libc++] Remove __libcpp_allocate (#220981) > 2026-09-10 nikolasklauser@berlin.de [libc++] Add [[gnu::warn_unused]] to a bunch of threading utilities (#213963) > 2026-09-10 nikolasklauser@berlin.de [libc++] Simplify the implementation of std::declval (#222303) > 2026-09-10 mike.kazakov@gmail.com [libc++][pstl] Implementation of parallel std::minmax_element() based on parallel reduce (#221572) > 2026-09-10 de34@live.cn [libc++] Remove `_LIBCPP_EXPLICIT_SINCE_CXX14` (#222221) > 2026-09-09 mgorny@gentoo.org [libc++] Disable SSP in `clear_padding.pass.cpp` (#218130) > 2026-09-09 mike.kazakov@gmail.com [libc++][pstl] Implementation of parallel std::is_heap() based on std::is_heap_until() (#221556) > 2026-09-09 george.burgess.iv@gmail.com [libc++] Opt `std::*set` out of map key extraction optimization (#220452) > 2026-09-09 de34@live.cn [libc++] Backport resolution of LWG2187 to C++11 (#222006) > 2026-09-09 wtranviet@proton.me [libc++] Fix `optional<T>::transform` into `optional<T&>` (#221506) > 2026-09-09 david.spickett@arm.com [libcxx][libcxxabi][cmake] Deduplicate sanitizer flags function (#221757) > 2026-09-09 vishanksinghh@gmail.com [libc++][ranges] Implement LWG4013: Make `lazy_split_view::outer-iterator::value_type` non-default-constructible (#221919) > 2026-09-09 de34@live.cn [libc++][NFC] Remove `optional::__get` (#217218) > 2026-09-08 nikolasklauser@berlin.de [libc++] Fix make_from_tuple for reference types (#220966) > 2026-09-08 de34@live.cn [libc++][test] Test SFINAE for `optional`'s operators in C++17 (#221643) > 2026-09-08 jieke@live.cn [libc++][ranges] Implement LWG 3599 (#221573) > 2026-09-06 3shandan@gmail.com [libc++] Implement LWG4072: std::optional comparisons: constrain harder (#209968) > 2026-09-05 de34@live.cn [libc++][NFC] Avoid empty namespace in `<__concepts/common_with.h>` (#221407) > 2026-09-04 mike.kazakov@gmail.com [libc++][pstl] Implementation of parallel std::min_element() based on parallel reduce (#219876) > 2026-09-04 nikolasklauser@berlin.de [libc++] Assert that the alignment for memory_resource::allocate is a power of two (#219174) > 2026-09-04 nikolasklauser@berlin.de [libc++] Avoid including <string_view> in <vector> (#220862) > 2026-09-04 mike.kazakov@gmail.com [libc++][pstl] Implementation of parallel std::is_heap_until() based on __parallel_find() (#218603) > 2026-09-03 mike.kazakov@gmail.com [libc++][pstl] Implementation of parallel std::find_end() based on __parallel_find() (#218321) > 2026-09-04 de34@live.cn [libc++] Apply `[[nodiscard]]` to `get_new_handler` (#220847) > 2026-09-03 nikolasklauser@berlin.de [libc++] Add a test for the ABI of std::locale::id (#220857) > 2026-09-03 nikolasklauser@berlin.de [libc++] Optimize vector::emplace_back (#218658) > 2026-09-03 nikolasklauser@berlin.de [libc++] Replace __uninitialized_allocator_copy with __uninitialized_allocator_copy_n (#219445) > 2026-09-03 nikolasklauser@berlin.de [libc++] Fix std::pmr::new_delete_resource() returning underaligned pointers (#219166) > 2026-09-02 hghristov.rmm@gmail.com [libc++][ranges] Implement P3052R2: `view_interface::at()` (#205012) > 2026-09-02 nikolasklauser@berlin.de [libc++] Simplify allocator propagation in vector assignments (#217635) > 2026-09-02 nikolasklauser@berlin.de [libc++] Add a test for the ABI of std::once_flag (#218924) > 2026-09-01 sharjeelkhan@google.com [libc++] Add _LIBCPP_NO_SANITIZE for std::__assume_aligned (#220296) > 2026-09-01 ndesaulniers@google.com libcxx: fixups for __BIONIC__ (#219591) > 2026-09-01 hghristov.rmm@gmail.com [libc++][docs][NFC] Remove Format and Parallelism TS status pages (#220021) > 2026-09-01 github.snugness349@passinbox.com [libc++][ranges][enumerate_view] Update iterator `iter_move` test (#219474) > 2026-09-01 mfwippich@gmail.com [libc++] Implement P2830R10: Standardized Constexpr Type Ordering (#216616) > 2026-08-31 sharjeelkhan@google.com [libc++] Enable _LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION for Bionic (#218055) > 2026-08-31 ldionne.2@gmail.com [libc++] Add missing noexcept on shared_ptr assignment (#219533) > 2026-08-31 nikolasklauser@berlin.de [libc++] Make once_flag pointer-sized on MinGW (#219895) > 2026-08-31 c8ef@outlook.com [libc++] fix incorrect definition of __indirectly_binary_right_foldable (#219957) > 2026-08-31 arthsrivastava1@gmail.com [libc++] Remove NaCl support from __cxx03 headers (#219787) > 2026-08-31 corentin.kerisit@gmail.com [libc++] Do not define std::nothrow with VCRuntime ABI (#217694) > 2026-08-29 akremer@ripple.com [libc++] Implement P3798R1: The unexpected in `std::expected` (#219236) > 2026-08-28 higher.performance.github@gmail.com Speed up pre-C++20 operator<(std::tuple, std::tuple) (#214646) > 2026-08-28 nikolasklauser@berlin.de [libc++] Use __copy_n in vector::__assign_with_size (#218370) > 2026-08-28 hghristov.rmm@gmail.com [libc++][FTM] Updated FTMs from C++29 (#218241) > 2026-08-27 ldionne.2@gmail.com [libc++] Document the procedure to introduce a new Standard in the library (#219026) > 2026-08-27 nikolasklauser@berlin.de [libc++] Use new/delete expressions for memory allocation in <any> (#219153) > 2026-08-27 hghristov.rmm@gmail.com [libc++] Kickstart C++29 support (#215820) > 2026-08-26 wtranviet@proton.me [libc++] IWYU `<optional>` include in system_error.cpp (#215288) > 2026-08-26 ldionne.2@gmail.com [libc++][NFC] Add clarifying comment on dangling macro defininition (#215883) > 2026-08-26 nikolasklauser@berlin.de [libc++][NFC] Refactor new.ipp so the _impl functions take a failure mode argument (#218648) > 2026-08-26 ldionne.2@gmail.com [libc++] Remove confusing summary (#218897) > 2026-08-25 phosek@google.com [libcxx] Remove dependency on msvcprt/libcpmt (#209663) > 2026-08-25 ldionne.2@gmail.com [libc++] Remove the historical benchmarking utilities (#217978) > 2026-08-25 wtranviet@proton.me [libc++] Add test for LWG4043 ASCII in text_encoding (#218175) > 2026-08-25 wtranviet@proton.me [libc++][docs] Document `std::optional` hardening (#218173) > 2026-08-25 ldionne.2@gmail.com [libc++] Add availability for LLVM 22 on Apple platforms (#218518) > 2026-08-25 github.snugness349@passinbox.com [libc++][math][NFC] Generalize test-suite improvement for `signbit` and `fpclassify` tests (#217897) > 2026-08-25 nikolasklauser@berlin.de [libc++][NFC] Rename is_trivially_relocatable.h to is_relocatable.h (#218650) > 2026-08-25 nikolasklauser@berlin.de [libc++] Remove _LIBCPP_SHORT_WCHAR (#207562) > 2026-08-25 nikolasklauser@berlin.de [libc++] Optimize vector::erase (#213916) > 2026-08-25 nikolasklauser@berlin.de [libc++] Optimize vector growth for nothrow move constructible types (#214690) > > If this roll has caused a breakage, revert this CL and stop the roller > using the controls here: > https://autoroll.skia.org/r/libcxx-chromium > Please CC hans@chromium.org,thakis@chromium.org on the revert to ensure that a human > is aware of the problem. > > To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry > > To report a problem with the AutoRoller itself, please file a bug: > https://issues.skia.org/issues/new?component=1389291&template=1850622 > > Documentation for the AutoRoller is here: > https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md > > Bug: 534049474, 503250165 > Change-Id: I531b259168332c2624f13bccfede9c648a651d06 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8717169 > Reviewed-by: Ari Chivukula <arichiv@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Commit-Queue: Liza Burakova <liza@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1741794} Bug: 534049474, 503250165 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: I51e04308551efd2cdd5ea8303dcecf910b949e7d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8792746 Reviewed-by: Andrey Kosyakov <caseq@chromium.org> Commit-Queue: Andrey Kosyakov <caseq@chromium.org> Owners-Override: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#1741841} NOKEYCHECK=True GitOrigin-RevId: 52aef0cddb5ca3dd61402f2095e65598fb7e9250
The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++17) designed to augment the C++ standard library.
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.
If you want to just get started, make sure you at least run through the Abseil Quickstart. The Quickstart contains information about setting up your development environment, downloading the Abseil code, running tests, and getting a simple binary working.
Bazel and CMake are the official build systems for Abseil. See the quickstart for more information on building Abseil using the Bazel build system. If you require CMake support, please check the CMake build instructions and CMake Quickstart.
Abseil follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.
Abseil contains the following C++ library components:
base base library contains initialization code and other code which all other Abseil code depends on. Code within base may not depend on any other code (other than the C++ standard library).algorithm algorithm library contains additions to the C++ <algorithm> library and container-based versions of such algorithms.cleanup cleanup library contains the control-flow-construct-like type absl::Cleanup which is used for executing a callback on scope exit.container container library contains additional STL-style containers, including Abseil's unordered “Swiss table” containers.crc The crc library contains code for computing error-detecting cyclic redundancy checks on data.debugging debugging library contains code useful for enabling leak checks, and stacktrace and symbolization utilities.flags flags library contains code for handling command line flags for libraries and binaries built with Abseil.hash hash library contains the hashing framework and default hash functor implementations for hashable types in Abseil.log log library contains LOG and CHECK macros and facilities for writing logged messages out to disk, stderr, or user-extensible destinations.memory memory library contains memory management facilities that augment C++'s <memory> library.meta meta library contains type checks similar to those available in the C++ <type_traits> library.numeric numeric library contains 128-bit integer types as well as implementations of C++20's bitwise math functions.profiling profiling library contains utility code for profiling C++ entities. It is currently a private dependency of other Abseil libraries.random random library contains functions for generating pseudorandom values.status status library contains abstractions for error handling, specifically absl::Status and absl::StatusOr<T>.strings strings library contains a variety of strings routines and utilities.synchronization synchronization library contains concurrency primitives (Abseil's absl::Mutex class, an alternative to std::mutex) and a variety of synchronization abstractions.time time library contains abstractions for computing with absolute points in time, durations of time, and formatting and parsing time within time zones.types types library contains non-container utility types.utility utility library contains utility and helper code.Abseil recommends users “live-at-head” (update to the latest commit from the master branch as often as possible). However, we realize this philosophy doesn't work for every project, so we also provide Long Term Support Releases to which we backport fixes for severe bugs. See our release management document for more details.
The Abseil C++ library is licensed under the terms of the Apache license. See LICENSE for more information.
For more information about Abseil: