Releases: jart/cosmopolitan
Cosmopolitan v3.5.3
Your cosmocc toolchain now includes five new useful programs: ar.ape,
sha256sum.ape, resymbol, and cocmd. See ca4cf67 for further details.
This release fixes Android support. You can now run LLMs on your phone
using Cosmopolitan software like llamafile. See 78d3b86 for further
details. Thank you @aj47 (techfren.net) for bug
reports and and testing efforts.
We've worked out additional kinks in our new mmap() runtime, which now
has a more bulletproof locking strategy. See 1bf2d8e for details.
This release fixes a Windows regression that was introduced in the last
release, where programs that need a lot of thread_local
storage would
crash very early during initialization. See e437bed for details.
Newly discovered issues in Cosmo's POSIX threads runtime have been
addressed. It's now possible to cancel a thread that was created by a
canceled thread. Keys now destruct atomically within a thread, out of an
abundance of paranoia w.r.t. signal safety. Thread destructor function
names are also now logged to --strace. It's a boon for debuggability.
See 7695798 for further details.
We invented a new non-POSIX API named pthread_decimate_np() which forces
the runtime to garbage collect zombie threads. It can be used alongside
pthread_orphan_np() to block until detached threads have exited, so it's
safe to CheckForMemoryLeaks(). See 4cb5e21 for further details.
We've also added more preliminary content to the Cosmopolitan Templates
Library, which is an STL replacement that has 10x faster build times.
Cosmopolitan v3.5.2
Cosmopolitan v3.5.1
- d461c6f Do more quality assurance work
Cosmopolitan v3.5.0
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
We now have a higher quality memory map implementation.
- 6ffed14 Rewrite memory manager
- 0dbf01b Bring Lua to 5.4.6. (#1214)
- 7f6d0b8 Support -x LANG flag in cosmocc
- f2c8ddb Fix --strace use-after-free in pthread_join()
- d1d4388 Delete ASAN
We've made a lot of progress reinventing the C++ STL.
- 8b3e368 ctl::string small-string optimization (#1199)
- c4c812c Introduce ctl::set and ctl::map
- f9dd568 Implement ctl::unique_ptr (#1216)
- 118db71 Provide a minimal new.h for CTL (#1205)
- a795017 Fix c.inc _Atomic define for C++ (#1231)
- d7b1919 ctl::unique_ptr improvements and cleanup (#1221)
- 7e780e5 More ctl::string optimization (#1232)
- 9a5a138 CTL: utility.h, use ctl::swap in string (#1227)
- e38a6e7 ctl string const/value tweaks (#1218)
- d44a7dc Fix bugs in in ctl::optional (#1203)
- 2ba6b01 Fix some memory issues with ctl::string (#1201)
- f86e6f8 Make new.cc definitions weak (#1233)
- 03b476f Minor small-string errata from #1199
- f3effcb One more SSO erratum from #1199
- 32643e9 Decouple swap from std (#1211)
- a0410f0 Make big_string pod (#1204)
We've been making improvements to our GitHub development process.
Cosmopolitan v3.4.0
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.
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
- 8e68384 Upgrade to 2022-era LLVM libcxx
- 4937843 9906f29 Introduce Cosmopolitan Templates Library (CTL)
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
Cosmopolitan v3.3.9
Cosmopolitan v3.3.8
- 1df4296 Fix stdio for character device regression
Cosmopolitan v3.3.7
- cf70a44 Support shebang on Windows
- ed93fc3 Fix fread() with 2gb+ sizes
- 5f61d27 Add hwap constants to sys/auxv.h
- 2f3c6e7 Revert "Remove zlib namespacing (#1142)"
- 65c9b28 Fix buffer overflow in Lua os.tmpname (#1180)
- bf3531d Make crash reports reliable in multithreaded case
- 13b9ecd Remove outdated restriction on -Werror on cosmocc
- 624119e Fix NT accept/connect not initializing with SO_UPDATE_*_CONTEXT (#1164)
- 0768807 Rename python -> python3 (closes #1144) (#1187)
- 4292348 Import libbsd readpassphrase (#1182)
- 42891e8 Fix #959 (typo in cosmocc --version)
- 0b59f01 Put confstr() in unistd.h
- f029375 Introduce MAP_HUGETLB
- 4718355 Fix sleb64 (#1179)