Skip to content

Releases: jart/cosmopolitan

Cosmopolitan v4.0.2

06 Jan 00:04
5907304
Compare
Choose a tag to compare

Cosmopolitan Libc makes C/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 7.3 + NetBSD + BIOS with the best performance and reliability.

Cosmo v4.0.2 Release Notes

After testing 4.0.x with various programs and hammering out the
remaining issues, this release includes the latest build of Cosmos.
We've confirmed bash, emacs, vim, git, links, wget, etc. work well
across platforms.

  • 29eb7e6 Fix fork() regression on Windows
  • 42a3bb7 Make execve() linger when it can't spoof parent
  • f0b0f92 Enable sqlite3 serialization in redbean (#1349)
  • 035b0e2 Attempt to fix MODE=dbg Windows execve() flake
  • 7b67b20 Fix Windows MODE=tiny breakage
  • c97a858 Remove missing definitions

Read the documentation:

Redundant download URLs are provided:

Known issues:

  • You might need our binfmt_misc interpreter with some Linux distros
  • Run Windows Terminal Preview with admin privileges to use symlinks
  • Use TERM=vt100 nano to fix frozen display state with nano editor
  • Self-modifying code isn't preserved across fork() on Windows
  • Function tracing is disabled in child after fork() on Windows
  • Z shell users need zsh 5.9+ which fixes an execve() bug

Cosmopolitan v4.0.1

04 Jan 04:04
4acd12a
Compare
Choose a tag to compare
  • fe01642 Add missing lock to fork() on Windows
  • e939659 Fix ordering of pthread_create(pthread_t *thread)
  • ed6d133 Use tgkill() on Linux and FreeBSD
  • b734eec Test restricting tests to single cpu

Cosmopolitan v4.0.0

03 Jan 07:08
97fc2aa
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 7.3 + NetBSD + BIOS with the best performance and reliability. For further details, read the Cosmopolitan Toolchain README.

Our 3.0.0 release (published in Oct 2023) was when things started to work.
This 4.0.0 release is when things have started to work well.

  • 98c5847 Fix fork waiter leak in nsync
  • af7bd80 Eliminate cyclic locks in runtime
  • 26c051c Spoof PID across execve() on windows
  • 6245732 Make threads faster and more reliable
  • f24c854 Write more runtime tests and fix bugs
  • 538ce33 Fix fork thread handle leak on windows
  • fde03f8 Remove leaf attribute where appropriate
  • 379cd77 Improve memory manager and signal handling
  • 662e7b2 Remove pthread_setcanceltype() from non-dbg strace
  • 36e5861 Reduce stack virtual memory consumption on Linux
  • b490e23 Improve Windows sleep accuracy from 15ms to 15µs
  • ef00a7d 5fae582 Fix AFL crashes in C++ demangler
  • 9ba5b22 Unblock stalled i/o signals on windows
  • 2d43d40 Support process shared pthread_rwlock
  • 4705705 Fix bugs in times() function
  • 0b3c81d Make fork() go 30% faster
  • 8db646f Fix bug with systemvpe()
  • c7e3d9f Make recursive mutexes slightly faster
  • cc8a9eb Document execve() limitation on Windows
  • fd7da58 Introduce example flash card program named rote
  • 55b7aa1 Allow user to override pthread mutex and cond
  • 838b54f Fix C++ math.h include order issue
  • c8e10ee Make bulk_free() go faster
  • c22b413 Make strcasestr() faster
  • b40140e Improve redbean concurrency (#1332)
  • 3142758 Fix atomic_fetch_sub on workers (#1331)
  • cf9252f Correct redbean unix.commandv() docs

Cosmopolitan v3.9.7

23 Nov 05:49
7466600
Compare
Choose a tag to compare
  • 4e9566c Invent new cosmo_args() api
  • 9ddbfd9 Introduce cosmo_futex_wait and cosmo_futex_wake
  • 5c3f854 Fix strcasestr()
  • abdf6c9 Sync with jtckdint
  • e228aa3 Save rax register in getcontext
  • fd15b2d Ensure ^C gets printed to Windows console
  • ad0a7c6 [redbean] Add details to OnError Hook (#1324)
  • 1312f60 Strongly link tr and sed into system() and popen()
  • cafdb45 Strongly link glob() into system() and popen()
  • e47d67b Add asteroids game

Cosmopolitan v3.9.6

01 Nov 09:45
5ce5fb6
Compare
Choose a tag to compare
  • d3279d3 Fix typo in mmap() Windows implementation

Cosmopolitan v3.9.5

01 Nov 06:22
e62ff3e
Compare
Choose a tag to compare
  • 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

13 Oct 06:53
2f4e6e8
Compare
Choose a tag to compare
  • 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

09 Oct 03:25
17a85e4
Compare
Choose a tag to compare
  • 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

22 Sep 10:27
4a7dd31
Compare
Choose a tag to compare

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:

Your cosmocc toolchain has instructions here, and is mirrored to the
following URLs:

Cosmopolitan v3.9.1

17 Sep 10:18
aaed879
Compare
Choose a tag to compare
  • 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