Cosmopolitan v3.5.5
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