Skip to content

Cosmopolitan v3.5.5

Compare
Choose a tag to compare
@jart jart released this 20 Jul 05:49
· 333 commits to master since this release
493ffc9

This release perfects the new memory manager. The impact of the mmap()
rewrite (introduced by Cosmo v3.5.0) is that LLaMAfiler's tokenization
endpoint was previously handling 2 million requests per second and now
it's handling 3.3 million per second.

  • 8c645fa Make mmap() scalable
  • 3756870 Implement new red-black tree
  • 1ff037d Add some mmap() documentation
  • f7780de Make realloc() go 100x faster on Linux/NetBSD
  • 76cea6c Squeeze more performance out of memory manager
  • fdab49b Demonstrate signal safety of recursive mutexes
  • 01587de Simplify memory manager

A few disruptive changes slipped in, but they're necessary. Aside from
the changes listed below, please note that you might need to update your
code to use sysconf(_SC_GRANSIZE) instead of sysconf(_SC_PAGESIZE)
when the alignment of the addr or offset parameters to mmap() is
the thing you care about.

  • 1029dcc Reduce default stack size from 256kb to 81kb
  • 86d884c Get rid of .internal.h convention in LIBC_INTRIN
  • fc65422 Remove __mmap() and __munmap()

Other changes:

  • 3f2a1b6 Fix greenbean example
  • 0ed916a Fix a bug in example code
  • 5a9a08d Fix regression in elf2pe program
  • c697133 Fix typo in accept4-sysv.c (#1235)
  • 15ea052 Reduce code size of mandatory runtime
  • 6dbc3fb Add AMD cache sizes to o//tool/viz/cpuid
  • bd6d9ff Get deathstar demo working again on metal
  • 135d538 Make ctl::set use 30% less memory than libcxx