cosmopolitan/libc/runtime
Justine Tunney 8c645fa1ee
Make mmap() scalable
It's now possible to create thousands of thousands of sparse independent
memory mappings, without any slowdown. The memory manager is better with
tracking memory protection now, particularly on Windows in a precise way
that can be restored during fork(). You now have the highest quality mem
manager possible. It's even better than some OSes like XNU, where mmap()
is implemented as an O(n) operation which means sadly things aren't much
improved over there. With this change the llamafile HTTP server endpoint
at /tokenize with a prompt of 50 tokens is now able to handle 2.6m r/sec
2024-07-05 23:26:00 -07:00
..
.cosmo Move zipos into runtime package 2023-08-11 23:14:02 -07:00
__sigsetjmp_tail.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
at_quick_exit.c Upgrade to 2022-era LLVM LIBCXX 2024-05-27 02:12:27 -07:00
BUILD.mk Fix build break 2024-06-29 04:34:27 -07:00
clktck.h Reduce header complexity 2023-11-28 14:39:42 -08:00
clone-linux.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
clone-openbsd.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
clone-xnu.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
clone.c Delete ASAN 2024-06-22 05:45:49 -07:00
closesymboltable.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
cosmo.S Delete ASAN 2024-06-22 05:45:49 -07:00
cosmo2.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
cxa_thread_atexit.c Make POSIX threads improvements 2024-06-30 15:38:59 -07:00
e820.internal.h Support malloc() on bare metal 2021-02-24 00:53:24 -08:00
efimain.greg.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
efipostboot.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
enable_tls.c Remove __mmap() and __munmap() 2024-07-05 12:55:46 -07:00
exit.c Introduce ctl::set and ctl::map 2024-06-23 22:27:11 -07:00
fenv.h Introduce support for trapping math 2024-04-30 13:38:43 -07:00
findcombinary.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
fltrounds.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
fpathconf.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
fpreset.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
ftrace-hook.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
ftrace_install.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
ftrace_stackdigs.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
ftraceinit.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
ftracer.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
getargmax.c Make improvements 2024-02-12 10:23:00 -08:00
getavphyspages.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
getdosargv.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
getdosenviron.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
getinterpreterexecutablename.c Rerun clang-format on the repo (#1217) 2024-06-15 16:34:48 -04:00
getlogin.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getlogin_r.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getphyspages.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
getresourcelimit.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
getsymbol.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getsymbolbyaddr.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
getsymbolname.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getsymboltable.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
getsysctl.c Add sysctlbyname() for MacOS 2024-05-02 23:21:43 -07:00
grow.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
hook.greg.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
inflate.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
init.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
interceptflag.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
internal.h Rewrite memory manager 2024-06-22 05:45:11 -07:00
isstackoverflow.c Simplify memory manager 2024-07-05 05:47:15 -07:00
jit.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
login_tty.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
mapanon.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
mapshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
mapstack.c Make mmap() scalable 2024-07-05 23:26:00 -07:00
memtrack.internal.h Fix bugs with new memory manager 2024-06-29 10:53:57 -07:00
metalprintf.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
metalprintf.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
mman.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
morph.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
morph_tls.c Release Cosmopolitan v3.3 2024-02-20 13:27:59 -08:00
openexecutable.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
opensymboltable.greg.c Simplify memory manager 2024-07-05 05:47:15 -07:00
pathconf.h Reduce header complexity 2023-11-28 14:39:42 -08:00
pc.internal.h Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
printgarbage.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
progname.S flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_keys.c Introduce ctl::set and ctl::map 2024-06-23 22:27:11 -07:00
quick_exit.c Add C++ demangling to privileged runtime 2024-06-01 20:10:58 -07:00
runtime.h Make mmap() scalable 2024-07-05 23:26:00 -07:00
set_tls.c Get deathstar demo working again on metal 2024-07-04 03:44:17 -07:00
sigsetjmp.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
stack.h Do more quality assurance work 2024-06-24 06:53:49 -07:00
straceinit.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
symbols.c Delete ASAN 2024-06-22 05:45:49 -07:00
symbols.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
sysconf.c Simplify memory manager 2024-07-05 05:47:15 -07:00
sysconf.h Reduce header complexity 2023-11-28 14:39:42 -08:00
syslib.internal.h Add sysctlbyname() for MacOS 2024-05-02 23:21:43 -07:00
utmp.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
utmp.h Reduce header complexity 2023-11-28 14:39:42 -08:00
utmpx.h Reduce header complexity 2023-11-28 14:39:42 -08:00
valist.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
warnifpowersave.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
weakfree.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
winargs.internal.h Make improvements 2024-02-12 10:23:00 -08:00
winmain.greg.c Simplify memory manager 2024-07-05 05:47:15 -07:00
zipos-access.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-close.c Rename __zipos_free -> __zipos_drop (#1043) 2023-12-26 12:08:57 -05:00
zipos-fcntl.c Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
zipos-find.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-fstat.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
zipos-get.c Simplify memory manager 2024-07-05 05:47:15 -07:00
zipos-inode.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
zipos-mmap.c Remove __mmap() and __munmap() 2024-07-05 12:55:46 -07:00
zipos-normpath.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
zipos-notat.c Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
zipos-open.c Remove __mmap() and __munmap() 2024-07-05 12:55:46 -07:00
zipos-parseuri.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-read.c Fix bugs with new memory manager 2024-06-29 10:53:57 -07:00
zipos-seek.c Skip the CAS on new_pos < 0 (#1080) 2024-01-12 21:08:28 -08:00
zipos-stat-impl.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
zipos-stat.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
zipos.internal.h Fix bugs with new memory manager 2024-06-29 10:53:57 -07:00
zipos.S Rename __zipos_free -> __zipos_drop (#1043) 2023-12-26 12:08:57 -05:00