Skip to content

Releases: jart/cosmopolitan

Cosmopolitan v3.4.0

05 Jun 10:54
3093f0e
Compare
Choose a tag to compare

Cosmopolitan Libc makes C a build-once run-anywhere language, like Java, except it doesn't need an interpreter or virtual machine. Instead, it reconfigures stock GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS with the best possible performance and the tiniest footprint imaginable. For further details, read Cosmopolitan Third Edition, the Cosmo README, and the Cosmopolitan Toolchain README.

Improvements

This release makes dlmalloc scalable and zlib crc32 faster. Enterprise
server applications that employ many threads on many cores can now
look upon Cosmopolitan as a serious and viable option for their needs.

  • 3609f65 Make malloc() go 200x faster
  • a05ce3a Support avx512f + vpclmulqdq crc32() acceleration

This release fixes some showstopper issues on Windows.

  • e4d25d6 Drop support for Windows 8
  • cd672e2 Improve crash signal reporting on Windows
  • f31a98d Fix bug with realpath() on Windows
  • 2816df5 Increase tinymalloc granularity

This release brings a more modern standard library for C++. It compiles
slower, but in certain cases that can be worked around since it defines
"breakout" headers for individual functions, e.g. std::move(). Since it
goes so slow, we're experimenting with creating our own STL replacement

Our --ftrace function call logger now demangles C++ symbols. This is
thanks to revisions we've made to our FreeBSD demangler that makes it
lockless and reentrant so it's safe to call from signal handlers. It's not as
good as the libcxxabi demangler, but that doesn't make it unimpressive.
For example, calling kprintf("%t", sym) successfully demangles 90% of
the symbols in the llamafile codebase. Usually when it doesn't work, it's
because a symbol is very very long. Since it's run when nops are hooked
in function prologues, it has to be part of the privileged cosmo runtime,
which is highly constrained and can only use fixed size stack buffers.

Additional improvements:

  • 7c8df05 Improve -march=native micro-architecture detection
  • b74b974 Introduce #include <tinygetopt.h>
  • 4c77acd Add LoadZipArgs() to <cosmo.h>
  • fae1c32 Encode ±INFINITY as ±1e5000

Finally, this release sunsets the cosmopolitan amalgamation.

Cosmopolitan v3.3.10

27 May 05:20
2f4ca71
Compare
Choose a tag to compare
  • 07004eb Upgrade to superconfigure z0.0.42
  • 086d700 Improve crash handler on XNU
  • 0a51241 ntspawn: fix initializing NtStartupInfoEx (#1190)
  • c68f659 Fix definition of getpeername on FreeBSD
  • af3f62a Ensure io requests are always capped at 0x7ffff000

Cosmopolitan v3.3.9

26 May 22:36
6cf9b9e
Compare
Choose a tag to compare
  • c2db3b7 Introduce --timelog=FILE flag to GNU Make
  • edb03b8 Make stdin unbuffered when appropriate

Cosmopolitan v3.3.8

25 May 13:17
7724664
Compare
Choose a tag to compare
  • 1df4296 Fix stdio for character device regression

Cosmopolitan v3.3.7

25 May 02:47
ce9aeb2
Compare
Choose a tag to compare

Cosmopolitan v3.3.6

08 May 11:24
6659981
Compare
Choose a tag to compare
  • ae2a7ac Fix thread-local storage bugs on aarch64
  • 793393a Polyfill SA_RESETHAND on MacOS ARM64

Cosmopolitan v3.3.5

08 May 01:28
df68a63
Compare
Choose a tag to compare
  • b0df6c1 Implement proper time zone support
  • 19c8186 Improve crash backtrace reliability
  • 7d31fc3 Loaders rewrite argv[0] for old binaries (#1170)
  • 57c0b06 Make old C++ demangler asynchronous signal safe
  • a6ecbb7 Introduce libc/mem/tinymalloc.inc
  • 3bf95ae Invent tool for renaming ELF object symbols
  • 5fd7b07 Improve AVX512 feature detection
  • 317c8bc Update MODE=tiny time zone list (#1167)
  • d5ebb1f Add MapViewOfFile3 WIN32 API
  • 06d916b Add VirtualAlloc2 WIN32 API

Cosmopolitan v3.3.4

03 May 16:38
130fd66
Compare
Choose a tag to compare
  • 5c6877b Introduce support for trapping math
  • 403bc25 Make MXCSR editable by signal handlers on Windows
  • 8f6bc9d Let signals interrupt fgets unless SA_RESTART set (#1152)
  • deff138 recvfrom: don't convert address if addrsize is 0 (#1153)
  • b6e40a3 Add /dev/(u)random on NT (#1163)
  • 5488f0b Remove zlib namespacing (#1142)
  • 181cd4c Add sysctlbyname() for MacOS
  • 3bcd40b Fix regression in apeinstall.sh (#1161)
  • fcfdd26 Fix wrong parameter type in redbean documentation (#1162)
  • ff2b6fc Add munlock() and mlock2() to pledge
  • 0eef971 Add much of C11 threads.h API
  • 2bfd6b3 Various paginate improvements (#1148)
  • 69db501 Fix fork locking on win32 (#1141)
  • 6e6fc38 Apply clang-format update to repo (#1154)
  • 342d0c8 vim spells the c++ filetype 'cpp'
  • cec4c04 Remove .com logic from GetProgramExecutableName (#1134)
  • f8c0186 Fix calling __dns_parse with potentially too large rlen
  • 6992d8c Remove arbitrary limit from DNS result parsing
  • 1a6b4ab Import mntent bug fixes from Musl Libc
  • 223eb35 Import compiler warning fix from Musl
  • ea3cc4e math: fix fma(x,y,0) when x*y rounds to -0
  • 01267ea Update GetRemoteAddr documentation to clarify that it may return nil. (#1149)
  • bc6c183 Update .clang-format
  • 06839ab Change loop bound on uuidv4 test (#1143)
  • 39dde41 [Redbean] Add UuidV4 method (#1140)
  • 3e16e59 Move store after __asan_unpoison in __zipos_alloc (#1135)
  • b9d6e6e Standardize on -fsigned-char
  • 49a3213 Upgrade the One True Awk

Cosmopolitan v3.3.3

31 Mar 03:12
98d06b2
Compare
Choose a tag to compare
  • 9ff65cf Fix ZipOS extraction of ZIP64 assets
  • bef2cb0 Fix AVX512_BF16
  • 43885a7 Fix binary formatting for integers 2 and 3 (#1123)
  • 74a8508 Support -S in cosmocross
  • 045632a Make fixupobj work on Windows
  • 9a10ada Remove .com from README
  • 0c12c26 Update Emacs config
  • 40b7da8 Speed up fmaf() on x86
  • 6406689 Clarify MacOS supported versions
  • 1c34088 Ignore -pie and -fpie in cosmocc
  • bb92347 Add deprecated stubs for _bsf / _bsr
  • 8bfd56b Rename _bsr/_bsf to bsr/bsf
  • a6baba1 Stop using .com extension in monorepo

Cosmopolitan v3.3.2

27 Feb 17:31
c8383f2
Compare
Choose a tag to compare

This release fixes two issues with the recent 3.3.1 cosmocc release.

  • 64a9e6f Fix compiler runtime for _Float16 type
  • 0ef3648 Walk back most uses of __STRICT_ANSI__

Please see the previous release for the latest cosmos and further details.