Releases: jart/cosmopolitan
Cosmopolitan v3.9.6
Cosmopolitan v3.9.5
- 913b573 Fix mmap MT bug on Windows
- 9add248 Update projects claims re: OpenBSD
- beb090b Add ctl string find_first_of and find_last_of
- 107d335 Share that APE files are also zip archives and how to use them! (#1319)
- bd6630d Add missing ctl::string append method
- a120bc7 Fix ctl::string_view const iteration issue
- baad1df Add several NT functions (#1318)
- 4e44517 Move cosmo-clang to libexec
- 26663de Support setting pty size in script command
- 23da0d7 Improve art program
- 4b2a00f Introduce example program for viewing BBS art
Cosmopolitan v3.9.4
- dd249ff Fix package ordering in cosmopolitan.a
- 4abcba8 Make redbean Fetch() support longer responses
- dc1afc9 Fix fork() crash on Windows
- 5edc081 Define glob64
- 706cb66 Tune posix_spawn() successful fix
- a8bc7ac Import some Chromium Zlib changes
- d8fac40 Attempt to fix Emacs spawning issue
- 000d6db Make getentropy() faster
Cosmopolitan v3.9.3
- dcf9596 Make more fixups and quality assurance
- e4d6eb3 Make memchr() and memccpy() faster
- 12cc2de Make contended mutexes 30% faster on aarch64
- 85c58be Fix an async signal delivery flake on Windows
- 333c3d1 Add the uppercase B conversion specifier to printf (#1300)
- fef24d6 Work around copy_file_range() bug in eCryptFs
- ad11fc3 Avoid an --ftrace crash on Windows
- 70603fa Fix makedev() prototype
- 9255113 Delete some magic numbers
- 518eaba Further optimize poll() on Windows
- 556a294 Improve Windows mode bits
Cosmopolitan v3.9.2
Cosmopolitan's Windows support may finally be feature complete. It's now
possible to send signals between processes using kill() on Windows. Ten
new torture test programs have been written to tease out more fixes and
offer a high level of assurance that signal handling is correct. Some of
these tests are good enough to deadlock the signal handling of UNIX OSes
but not our signaling module for Windows. They also demonstrate that our
Windows signal handling actually outperforms many UNIX OSes at latency.
- 0d74673 Introduce interprocess signaling on Windows
- f68fc1f Put more thought into new signaling code
- dd8c4db Write more tests for signal handling
- 126a44d Write more tests attempting to break windows
- 8527462 d50f4c0 Fix ECHILD with WNOHANG on Windows
Other improvements include:
- e975245 Upgrade to superconfigure z0.0.56
- 1bfb348 Add weak self make_shared variant (#1299)
- 87a6669 Clean up and test the MSG_FOO constants
- 0e59afb Fix conflicting RTTI related symbol
- 8313dca Show file descriptors on crash on Windows
- d730fc6 Make NESEMU1 demo more reliable
This release includes a new build of cosmos, which is our collection of
prebuilt open source software. Special care has been placed into making
sure programs like Emacs, vim, wget, curl, etc. all work well on Windows.
Instructions are provided for its installation on UNIX and Windows systems.
It's available for download below, and mirrored to the following URLs:
- https://cosmo.zip/pub/cosmos/v/3.9.2/README.txt
- https://cosmo.zip/pub/cosmos/v/3.9.2/bin/ (download individually)
- https://cosmo.zip/pub/cosmos/zip/cosmos-3.9.2.zip (download everything)
- https://justine.lol/cosmopolitan/cosmos-3.9.2.zip (download everything)
Your cosmocc toolchain has instructions here, and is mirrored to the
following URLs:
Cosmopolitan v3.9.1
- 3c58ecd Fix bug with send() on Windows in O_NONBLOCK mode
- 774c67f Make send() block in non-blocking mode
- bb7942e Improve socket option story
- b1c9801 Support more TCP socket options on Windows
- 5aa970b Fix strace logging of ipv6 port
- f7754ab Fix strace result code for recv()
- b14dddc Emulate Linux socket timeout signaling on Windows
- 65e425f Slightly optimize iovec on Windows
- 8201ef2 Fix regression in package.ape build tool
Cosmopolitan v3.9.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. Prebuilt software is available on https://cosmo.zip/
Improvements
Cosmopolitan now has a bespoke speaker / microphone audio API.
- dc579b7 Productionize polished cosmoaudio library
- 0f3457c Add debug log to cosmoaudio and add examples
- 5d3b91d Get printvideo audio working on Windows and MacOS
- d1157d4 Upgrade pl_mpeg
There have been significant quality of life improvements for Windows.
- e65fe61 Fix shocking memory leak on Windows
- fbdf9d0 2ec413b cceddd2 Rewrite Windows poll()
- acd6c32 Rewrite Windows accept()
- e142124 Rewrite Windows connect()
- 6b10f4d Fix ioctl() and FIONREAD for sockets on Windows
- 58d252f Support more keystrokes in DECCKM mode
- 03875be Add missing ICANON features
- c260144 Introduce sigtimedwait() on Windows
- baf70af Make read() and write() signal handling atomic
- c3482af Fix file descriptor assignment issues on Windows
- 79516bf Improve handling of weird reparse points
- 39e7f24 Fix handling of paths with dirfd on Windows
- 462ba69 Speed up unnamed POSIX semaphores
- a5c0189 Make vim startup faster
- deb5e07 Remove exponential backoff from chdir()
- 51c0f44 Fix rare corner case in ntspawn.c (#1284)
- 5469202 Get monorepo fully building on Windows again
- b73673e Freshen bootstrap binaries
Bug fixes to cosmo libc system calls:
- dd8544c Delve into clock rabbit hole
Multi-threading is now better:
- 2f48a02 Make recursive mutexes faster
- 3c61a54 Introduce pthread_condattr_setclock()
- 90460ce Make Cosmo mutexes competitive with Apple Libc
- cca0edd Make pthread library internal mutex non-recursive
There have been improvements to your cosmocc toolchain:
- d99f066 Add clang-format to cosmocc toolchain
- 1e9902a Support merging many .a files into one .a file
- 41fc76c Fix apelink reproducible deterministic build bug
Bug fixes and improvements to the cosmo libc strings library:
- 7c83f4a wcsstr() is now linearly complex
- 7c83f4a strstr16() is now linearly complex
- 7c83f4a strstr() is now vectorized on aarch64 (10x)
- 7c83f4a strstr() now uses KMP on pathological cases
- 7c83f4a memmem() is now vectorized on aarch64 (10x)
- 7c83f4a memmem() now uses KMP on pathological cases
- 7c83f4a Make iswlower(), iswupper() consistent with glibc
- 7c83f4a Remove figure space from iswspace() implementation
- 7c83f4a Include line and paragraph separator in iswcntrl()
- 7c83f4a Use Musl wcwidth(), iswalpha(), iswpunct(), towlower(), towupper()
CTL now has a fast shared pointer implementation for C++ users.
- e1528a7 Basic CTL shared_ptr implementation (#1267)
- ae57fa2 Fix shared_ptr::owner_before (#1274)
- 37e2660 make_shared should work with nontrivial objects (#1293)
- ef62730 Enable STL-style enable_shared_from_this (#1295)
There have been many improvements to the printf() family of functions.
- e260d90 Fix 0 before decimal-point in hex float printf fns (#1297)
- 81bc8d0 Fix printing decimal-point character on printf %#a (#1296)
- b55e4d6 Hopefully completely fix printf-family %a rounding (#1287)
- 675abfa Add POSIX's apostrophe flag for printf-based funcs (#1285)
- e3d28de Fix UB in gdtoa hexadecimal float scanf and strtod (#1288)
- 7f21547 Fix occasional crash in test/libc/intrin/mmap_test (#1289)
- 19563d3 Make the pledge sandbox .so object work with UBSAN (#1290)
- 7d2c363 Fix statx not being allowed on rpath/wpath pledges (#1291)
- 4d05060 Partially fix printf hex float numbers/%a rounding (#1286)
- 4754f20 Fix printf-family long double prec/rounding issues (#1283)
- f882887 Fix ecvt/fcvt issues w.r.t. value==0 and ndigit==0 (#1282)
- c66abd7 Implement length modifiers for printf %n conv spec (#1278)
- 8f81451 Add POSIX's C conversion specifier to printf funcs (#1276)
- a089c07 Fix printf funcs on memory pressure with floats (#1275)
- 75e161b Fix printf-family functions on long double inf (#1273)
Other improvements:
- ecbf453 Upgrade to superconfigure z0.0.55
- 6397999 Fix unicode look-alike in define (#1294)
- b5fcb59 Implement more bf16/fp16 compiler runtimes
- ed1f992 Fix default open mode in redbean unix.open()
- 389d565 Use unsigned-signed conversion for refs test (#1272)
- 48b703b Minor cleanup/improvements in unique_ptr_test (#1266)
Cosmopolitan v3.8.0
This release has important bug fixes. Your cosmocc toolchain now bundles
Clang which can reduce your C++ build latency by 3x if you pass -mclang.
- ca2c30c Release redbean v3.0.0
- 884d892 Harden against aba problem
- f3ce684 Fix getpeername() bug on Windows
- 185e957 Detect implicit function declarations
- 8e14b27 Make fread() more consistent with glibc
- c9152b6 Add experimental support for cosmocc -mclang
- c9152b6 Switch C++ exception handling from SJLJ to DWARF
- c9152b6 int_fast16_t and int_fast32_t are now always 32-bit
- 6baf6cd Fix printf badly handling +/` flag conflict (#1269)
- 77be460 Make Windows REPLs great again
- 60e697f Move LoadZipArgs() to cosmo.h
- 2d44142 Get Meson builds working
- 908b7a8 Add VSCode settings
- 2eda509 Add stdfloat header
- 12ecaf8 Modernize ipv4.games server
- ebe1cbb Add crash proofing to ipv4.games server
- bb06230 Avoid linker conflicts on DescribeFoo symbols
- 1a9f82b Romanize Hindi, Yiddish, Arabic, Cyrillic, etc.
- eb6e96f Change InfoZIP to not auto-append .zip to pathname
- 4389f47 Expose wmempcpy() to _GNU_SOURCE
- 5b98629 Delete superfluous function
Cosmopolitan v3.7.1
Cosmopolitan v3.7.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. Prebuilt software is available on https://cosmo.zip/
Improvements
Your malloc() function is now more scalable on Linux Aarch64 and other
platforms, where it previously was not working as well as advertised.
- 0a79c69 Make malloc scalable on all platforms
Cosmopolitan Bash now works better on Windows. For example, if you start
a process that redirects stderr to a file, then your entire process tree
will now be able to cooperatively write to that file. When you update it
is recommended that you upgrade all your cosmos binaries at once.
Improvements have been made to cosmocc and libcxx which made it possible
for us to compile Clang as an APE binary.
- 77d3a07 Fix std::filesystem
- 0d7c272 Don't use sendfile() in libcxx
- 18964e5 Fix remove() directory on Windows
- 6ac3d3b Add precompiled header support to cosmocc
- f8cfc89 Allow -c to be specified with -E in cosmocc
- 01b09bc Support printf %n directive
- 3dab207 Remove mkfifo() prototype
- d0360bf Introduce cosmoranlib
Some upstream dependencies have been updated. In particular, Musl locale
handling is more true to the way it works upstream. You may need to have
setlocale(LC_ALL, "C.UTF-8")
in your main() function for certain POSIX
functions to work the same way they did previously by default.
- bb815ea Update Musl Libc code
- ff1a0d1 Upgrade to superconfigure z0.0.51
- 3fd275f Import optimized routines changes to exp10
- d40acc6 Detect more x86 features
Additional Changes
- a80ab3f Implement bf16 compiler runtime library
- 8d8aecb Avoid legacy instruction penalties on x86
- 24666e1 Add nightly cosmocc (artifact) builds (#1254)
- 3119416 Remove .internal from more header filenames
- 7499367 Ignore -Wimplicit-function-declaration in cosmocc
- 9ebacb7 Convert GCC 14 errors back to warnings (#1247)
- e18fe1e Freshen build/bootstrap/cocmd
- cf1559c Remove __threaded variable