cosmopolitan/libc/runtime
Justine Tunney f7780de24b
Make realloc() go 100x faster on Linux/NetBSD
Cosmopolitan now supports mremap(), which is only supported on Linux and
NetBSD. First, it allows memory mappings to be relocated without copying
them; this can dramatically speed up data structures like std::vector if
the array size grows larger than 256kb. The mremap() system call is also
10x faster than munmap() when shrinking large memory mappings.

There's now two functions, getpagesize() and getgransize() which help to
write portable code that uses mmap(MAP_FIXED). Alternative sysconf() may
be called with our new _SC_GRANSIZE. The madvise() system call now has a
better wrapper with improved documentation.
2024-07-07 12:40:30 -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 Make realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -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 Make realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -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 Make realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -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 realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -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 Make realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -07:00
sysconf.h Make realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -07: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 Make realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -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 Make realloc() go 100x faster on Linux/NetBSD 2024-07-07 12:40:30 -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