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.
Our latest 3.2 release features exciting fixes and improvements.
- 83107f7 Introduce FreeBSD ARM64 support
- 43fe595 Use DNS implementation from Musl Libc
- 7961487 Remove hard coded paths from APE bootloader (NixOS)
- f8ea02d Import /etc/shadow support from Musl for Linux
- ce0143e Fix madvise() on Windows
- 873069f Fix -Xaarch64 in cosmocc
- 1a28e35 Use good locks in dlmalloc
- cd52c59 Allow MAP_POPULATE under pledge()
- e36283f Support double parameters in dlsym() imports
- 6be9477 Fix redbean to only check additional content types when Lua is present (#1033)
We've fixed important threading bugs on /zip/...
file descriptors.
- 53357aa Fix __zipos_close (#984)
- 8a10ccf Fix ZipOS deadlock/segfault (#1011)
- 5c35863 Rename __zipos_free -> __zipos_drop (#1043)
- 4c6f928 Disable argv[0] tests on non-XnuSilicon (#1015)
We now have a hack that lets you use cosmo binaries as a login shell.
Setuid security is improved. Executable path self-detection is better.
There's a new APE loader version as a result. If you have a systemwide
APE loader install, it's recommended that you upgrade, but not required.
- 81949f0 Mint APE Loader v1.10
- 2a3813c $prog.ape support (#977)
- f94c11d Loader path security (#1012)
- 68dbe53 Prepend getcwd to exename early in init (#1048)
- b02d13c Re-enable/fix non-argv[0] exe name tests (#1046)
- 10b4693 Sanity-check set-id interpreter script paths (#1029)
- 77facc4 Cover more cases for detecting ape loader (#1022)
- 2a11a09 Remove realpath/getcwd from loaders (#1024)
- d8ad346 Implement issetugid() on NetBSD
Our public header files now have better open source compatibility.