Make improvements

This change progresses our AARCH64 support:

- The AARCH64 build and tests are now passing
- Add 128-bit floating-point support to printf()
- Fix clone() so it initializes cosmo's x28 TLS register
- Fix TLS memory layout issue with aarch64 _Alignas vars
- Revamp microbenchmarking tools so they work on aarch64
- Make some subtle improvements to aarch64 crash reporting
- Make kisdangerous() memory checks more accurate on aarch64
- Remove sys_open() since it's not available on Linux AARCH64

This change makes general improvements to Cosmo and Redbean:

- Introduce GetHostIsa() function in Redbean
- You can now feature check using pledge(0, 0)
- You can now feature check using unveil("",0)
- Refactor some more x86-specific asm comments
- Refactor and write docs for some libm functions
- Make the mmap() API behave more similar to Linux
- Fix WIFSIGNALED() which wrongly returned true for zero
- Rename some obscure cosmo keywords from noFOO to dontFOO
This commit is contained in:
Justine Tunney 2023-06-03 08:12:13 -07:00
parent 5655c9a4e7
commit 8f522cb702
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
116 changed files with 1194 additions and 1025 deletions

View file

@ -88,7 +88,7 @@ Keywords={
"textexit",
"externinline",
"dontinline",
"noclone",
"dontclone",
"donothing",
"printfesque",
"flattenout",
@ -102,7 +102,7 @@ Keywords={
"forceinline",
"nocallersavedregisters",
"dontthrow",
"nooptimize",
"dontoptimize",
"optimizesize",
"optimizespeed",
"alignof",

View file

@ -51,7 +51,7 @@
"forceinline"
"nocallersavedregisters"
"dontthrow"
"nooptimize"
"dontoptimize"
"optimizesize"
"optimizespeed"
"alignof"

View file

@ -614,9 +614,8 @@
((eq major-mode 'sh-mode)
(compile (format "sh -c %s" file)))
((eq major-mode 'lua-mode)
(let* ((mode (cosmo--make-mode arg))
(redbean ))
(compile (format "make -j16 MODE=%s o/%s/tool/net/redbean.com && o/%s/tool/net/redbean.com -i %s" mode mode mode file))))
(let* ((mode (cosmo--make-mode arg)))
(compile (format "make -j16 MODE=%s o/%s/tool/net/redbean.com && build/run o/%s/tool/net/redbean.com -i %s" mode mode mode file))))
((and (eq major-mode 'python-mode)
(cosmo-startswith "third_party/python/Lib/test/" file))
(let ((mode (cosmo--make-mode arg)))

View file

@ -349,7 +349,7 @@ cosmo_kws = frozenset([
"dontinline",
"noinstrument",
"nointerpose",
"nooptimize",
"dontoptimize",
"noprune",
"wontreturn",
"nosideeffect",
@ -411,7 +411,7 @@ cosmo_kws = frozenset([
"dontinline",
"noinstrument",
"nointerpose",
"nooptimize",
"dontoptimize",
"noprune",
"wontreturn",
"nosideeffect",