Make improvements

- Fix build flakes
- Polyfill SIGWINCH on Windows
- Fix an execve issue on Windows
- Make strerror show more information
- Improve cmd.exe setup/teardown on Windows
- Support bracketed paste mode in Blinkenlights
- Show keyboard shortcuts in Blinkenlights status bar
- Fixed copy_file_range() and copyfile() w/ zip filesystem
- Size optimize GetDosArgv() to keep life.com 12kb in size
- Improve Blinkenlights ability to load weird ELF executables
- Fix program_executable_name and add GetInterpreterExecutableName
- Make Python in tiny mode fail better if docstrings are requested
- Update Python test exclusions in tiny* modes such as tinylinux
- Add bulletproof unbreakable kprintf() troubleshooting function
- Remove "oldskool" keyword from ape.S for virus scanners
- Fix issue that caused backtraces to not print sometimes
- Improve Blinkenlights serial uart character i/o
- Make clock_gettime() not clobber errno on xnu
- Improve sha256 cpuid check for old computers
- Integrate some bestline linenoise fixes
- Show runit process names better in htop
- Remove SIGPIPE from ShowCrashReports()
- Make realpath() not clobber errno
- Avoid attaching GDB on non-Linux
- Improve img.com example
This commit is contained in:
Justine Tunney 2022-03-16 13:33:13 -07:00
parent 2a938b3eaa
commit b45d50b690
194 changed files with 4881 additions and 2966 deletions

View file

@ -134,6 +134,7 @@
"__builtin_expect"
"__builtin_trap"
"__builtin_unreachable"
"__builtin_assume"
"__builtin_assume_aligned"
"__builtin_LINE"
"__builtin_FUNCTION"

View file

@ -1,50 +1,6 @@
(defconst cosmo-c-keywords-regex
(let (
;; (kar
;; '("case"
;; "do"
;; "return"
;; "struct"
;; "for"
;; "default"
;; "auto"
;; "while"
;; "else"
;; "break"
;; "union"
;; "switch"
;; "continue"
;; "extern"
;; "sizeof"
;; "if"
;; "goto"))
;; (ansi
;; '("static"
;; "sizeof"
;; "if"
;; "typedef"
;; "const"
;; "struct"
;; "for"
;; "union"
;; "switch"
;; "volatile"
;; "do"
;; "return"
;; "goto"
;; "auto"
;; "enum"
;; "else"
;; "break"
;; "extern"
;; "case"
;; "default"
;; "register"
;; "while"
;; "continue"))
(c99
'("inline"
"restrict"
@ -64,67 +20,10 @@
"_Complex_I"
"_Imaginary_I"))
;; (cxx17
;; '("this"
;; "thread_local"
;; "private"
;; "catch"
;; "export"
;; "operator"
;; "sizeof"
;; "dynamic_cast"
;; "static_assert"
;; "const_cast"
;; "const"
;; "for"
;; "static_cast"
;; "union"
;; "namespace"
;; "switch"
;; "virtual"
;; "class"
;; "alignas"
;; "continue"
;; "volatile"
;; "template"
;; "mutable"
;; "if"
;; "public"
;; "friend"
;; "do"
;; "inline"
;; "return"
;; "goto"
;; "alignof"
;; "auto"
;; "enum"
;; "typedef"
;; "else"
;; "break"
;; "constexpr"
;; "new"
;; "extern"
;; "using"
;; "throw"
;; "asm"
;; "case"
;; "typeid"
;; "decltype"
;; "reinterpret_cast"
;; "default"
;; "noexcept"
;; "register"
;; "nullptr"
;; "try"
;; "typename"
;; "while"
;; "protected"
;; "static"
;; "explicit"
;; "delete"))
(cosmo
'("__msabi"
"var"
"function"
"offsetof"
"microarchitecture"
"targetclones"
@ -298,7 +197,9 @@
"__weak__"
"__vector_size__"
"__ms_abi__"
"__mode__"))
"__mode__"
"__seg_fs"
"__seg_gs"))
(clang
'("__optnone__"
@ -306,11 +207,8 @@
)
(concat "\\_<"
(regexp-opt (append ;; kar
;; ansi
;; c99
(regexp-opt (append
c11
;; cxx17
gnu
clang
cosmo))

View file

@ -97,19 +97,22 @@
"Beautifies source code in current buffer."
(interactive)
(when (and (memq major-mode cosmo-format-modes)
(member (file-name-extension (buffer-file-name))
cosmo-format-exts)
(not (member (file-name-nondirectory (buffer-name))
cosmo-format-blacklist)))
(member (file-name-extension (buffer-file-name))
cosmo-format-exts)
(not (member (file-name-nondirectory (buffer-name))
cosmo-format-blacklist))
(not (save-excursion
(beginning-of-buffer)
(looking-at "/\\* clang-format off \\*/"))))
(let ((bin (cosmo--find-clang-format-bin)))
(when bin
(let ((p (point))
(tmp (make-temp-file "cosmo-format"))
(arg (or cosmo-format-arg
(and (locate-dominating-file
(buffer-file-name)
".clang-format")
"-style=file"))))
(and (locate-dominating-file
(buffer-file-name)
".clang-format")
"-style=file"))))
(when arg
(message arg)
(write-region nil nil tmp)

View file

@ -187,8 +187,9 @@
(format "m=%s; make -j8 -O MODE=$m o/$m/%s"
mode
(directory-file-name
(file-name-directory
(file-relative-name this root)))))
(or (file-name-directory
(file-relative-name this root))
""))))
((and (equal suffix "")
(cosmo-contains "_test." (buffer-file-name)))
(format "m=%s; make -j8 -O MODE=$m %s"
@ -468,11 +469,11 @@
;; -ffast-math -funsafe-math-optimizations -fsched2-use-superblocks -fjump-tables
(cond ((eq arg 9)
(cosmo--assembly 1
"V=1 OVERRIDE_COPTS='-fverbose-asm -fsanitize=undefined -fno-sanitize=null -fno-sanitize=alignment -fno-sanitize=pointer-overflow'"))
"V=1 OVERRIDE_COPTS='-w -fverbose-asm -fsanitize=undefined -fno-sanitize=null -fno-sanitize=alignment -fno-sanitize=pointer-overflow'"))
((not (eq 0 (logand 8 arg)))
(cosmo--assembly (setq arg (logand (lognot 8)))
"V=1 OVERRIDE_COPTS='-fverbose-asm -fsanitize=address'"))
(t (cosmo--assembly arg "V=1 OVERRIDE_COPTS='' CPPFLAGS=''"))))
"V=1 OVERRIDE_COPTS='-w -fverbose-asm -fsanitize=address'"))
(t (cosmo--assembly arg "V=1 OVERRIDE_COPTS='-w ' CPPFLAGS=''"))))
(defun cosmo-assembly-native (arg)
(interactive "P")
@ -607,7 +608,7 @@
(compile (format "make -j8 MODE=%s PYHARNESSARGS=-vv PYTESTARGS=-v o/%s/%s.py.runs"
mode mode (file-name-sans-extension file)))))
((eq major-mode 'python-mode)
(compile (format "python3 %s" file)))
(compile (format "python.com %s" file)))
('t
(error "cosmo-run: unknown major mode")))))))
@ -710,6 +711,7 @@
(concat dots notest ".c")
(concat dots notest ".cc")
(concat dots notest ".rl")
(concat dots notest ".greg.c")
(concat dots notest ".ncabi.c")
(concat dots notest ".hookabi.c")
(concat dots notest ".h"))))