cosmopolitan/third_party/libcxx
Justine Tunney 6ffed14b9c
Rewrite memory manager
Actually Portable Executable now supports Android. Cosmo's old mmap code
required a 47 bit address space. The new implementation is very agnostic
and supports both smaller address spaces (e.g. embedded) and even modern
56-bit PML5T paging for x86 which finally came true on Zen4 Threadripper

Cosmopolitan no longer requires UNIX systems to observe the Windows 64kb
granularity; i.e. sysconf(_SC_PAGE_SIZE) will now report the host native
page size. This fixes a longstanding POSIX conformance issue, concerning
file mappings that overlap the end of file. Other aspects of conformance
have been improved too, such as the subtleties of address assignment and
and the various subtleties surrounding MAP_FIXED and MAP_FIXED_NOREPLACE

On Windows, mappings larger than 100 megabytes won't be broken down into
thousands of independent 64kb mappings. Support for MAP_STACK is removed
by this change; please use NewCosmoStack() instead.

Stack overflow avoidance is now being implemented using the POSIX thread
APIs. Please use GetStackBottom() and GetStackAddr(), instead of the old
error-prone GetStackAddr() and HaveStackMemory() APIs which are removed.
2024-06-22 05:45:11 -07:00
..
__algorithm Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__atomic Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__bit Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__charconv Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__chrono Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__compare Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__concepts Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__condition_variable Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__coroutine Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__debug_utils Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__exception Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__expected Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__filesystem Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__format Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__functional Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__fwd Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__ios Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__iterator Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__locale_dir/locale_base_api Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__mdspan Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__memory Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__memory_resource Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__mutex Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__numeric Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__pstl/internal Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__random Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__ranges Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__stop_token Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__string Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__support Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__system_error Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__thread Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__tuple Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__type_traits Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__utility Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__variant Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
experimental Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ext Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
src Rewrite memory manager 2024-06-22 05:45:11 -07:00
__assert Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__availability Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__bit_reference Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__config Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__config_site Document __demangle() and fix a const func ptr bug 2024-06-02 04:15:48 -07:00
__debug Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__hash_table Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__locale Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__mbstate_t.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__node_handle Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__pstl_algorithm Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__pstl_config_site Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__pstl_memory Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__pstl_numeric Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__split_buffer Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__std_mbstate_t.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__threading_support Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__tree Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__undef_macros Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
__verbose_abort Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
algorithm Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
any Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
array Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
atomic Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
barrier Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
bit Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
bitset Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
BUILD.mk Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cassert Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ccomplex Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cctype Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cerrno Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cfenv Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cfloat Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
charconv Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
chrono Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cinttypes Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ciso646 Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
climits Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
clocale Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cmath Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
codecvt Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
compare Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
complex Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
complex.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
concepts Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
condition_variable Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
coroutine Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
CREDITS.TXT Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
csetjmp Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
csignal Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cstdarg Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cstdbool Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cstddef Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cstdint Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cstdio Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cstdlib Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cstring Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ctgmath Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ctime Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ctype.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cuchar Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cwchar Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
cwctype Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
deque Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
errno.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
exception Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
execution Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
expected Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
fenv.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
filesystem Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
float.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
format Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
forward_list Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
fstream Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
functional Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
future Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
initializer_list Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
inttypes.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
iomanip Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ios Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
iosfwd Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
iostream Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
istream Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
iterator Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
latch Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
libcxx.imp Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
LICENSE.TXT Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
limits Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
limits.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
list Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
locale Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
locale.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
map Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
math.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
mdspan Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
memory Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
memory_resource Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
module.modulemap Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
mutex Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
new Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
numbers Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
numeric Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
optional Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ostream Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
queue Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
random Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ranges Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
ratio Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
README.cosmo Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
regex Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
scoped_allocator Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
semaphore Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
set Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
setjmp.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
shared_mutex Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
source_location Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
span Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
sstream Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stack Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stdatomic.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stdbool.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stddef.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stdexcept Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stdint.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stdio.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
stdlib.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
streambuf Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
string Fix compiler warning 2024-05-27 02:23:24 -07:00
string.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
string_view Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
strstream Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
system_error Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
tgmath.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
thread Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
tuple Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
type_traits Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
typeindex Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
typeinfo Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
uchar.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
unordered_map Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
unordered_set Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
utility Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
valarray Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
variant Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
vector Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
version Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
wchar.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
wctype.h Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00

DESCRIPTION

  LLVM's C++ Standard Template Library

ORIGIN

  git@github.com:llvm/llvm-project.git
  commit ad0543f4ea82ec41c5e854af65758fa8d92d5553
  Author: Haojian Wu <hokein.wu@gmail.com>
  Date:   Thu Jun 1 15:31:43 2023 +0200

LOCAL CHANGES

  - Wrote __config_site
  - Add __COSMOPOLITAN__ when appropriate
  - Kludged (and probably broke) awful `cerr` feature
  - Break apart locale.cpp due to its outrageous build times
  - Suppress -Wattribute sometimes due to __always_inline__ hack