fix: input timeout bugs — read-raw-byte, SS3, parse-csi-params all use sub-second timeouts now (get-internal-real-time replaces get-universal-time which truncated to integer seconds)
This commit is contained in:
87
scripts/code-audit.lisp
Normal file
87
scripts/code-audit.lisp
Normal file
@@ -0,0 +1,87 @@
|
||||
;; Code audit: load everything with full safety, collect warnings
|
||||
(load "~/quicklisp/setup.lisp")
|
||||
(ql:register-local-projects)
|
||||
(ql:quickload :cl-tty :silent t)
|
||||
(ql:quickload :fiveam :silent t)
|
||||
|
||||
;; Redirect warnings into a collector
|
||||
(defvar *warnings* '())
|
||||
(defvar *notes* '())
|
||||
(defvar *style-warnings* '())
|
||||
|
||||
(setf sb-ext:*compiler-note-condition-handler*
|
||||
(lambda (c)
|
||||
(push (format nil "NOTE: ~a" c) *notes*)
|
||||
(muffle-warning c)))
|
||||
|
||||
(setf sb-ext:*compiler-warning-condition-handler*
|
||||
(lambda (c)
|
||||
(etypecase c
|
||||
(sb-int:simple-style-warning
|
||||
(push (format nil "STYLE-WARNING: ~a" c) *style-warnings*))
|
||||
(t
|
||||
(push (format nil "WARNING: ~a" c) *warnings*)))
|
||||
(muffle-warning c)))
|
||||
|
||||
;; Load all source files directly to catch per-file warnings
|
||||
(let ((files
|
||||
'("backend/classes.lisp" "backend/package.lisp"
|
||||
"backend/detection.lisp" "backend/simple.lisp" "backend/modern.lisp"
|
||||
"layout/layout.lisp"
|
||||
"src/components/container-package.lisp"
|
||||
"src/components/dialog-package.lisp" "src/components/dialog.lisp"
|
||||
"src/components/dirty.lisp"
|
||||
"src/components/input-package.lisp" "src/components/input.lisp"
|
||||
"src/components/keybindings.lisp"
|
||||
"src/components/markdown-package.lisp" "src/components/markdown.lisp"
|
||||
"src/components/mouse-package.lisp" "src/components/mouse.lisp"
|
||||
"src/components/package.lisp" "src/components/render.lisp"
|
||||
"src/components/scrollbox.lisp" "src/components/select-package.lisp"
|
||||
"src/components/select.lisp" "src/components/slot-package.lisp"
|
||||
"src/components/slot.lisp" "src/components/tabbar.lisp"
|
||||
"src/components/text-input.lisp" "src/components/text.lisp"
|
||||
"src/components/textarea.lisp" "src/components/theme.lisp"
|
||||
"src/components/box.lisp"
|
||||
"src/rendering/framebuffer.lisp"
|
||||
"demo.lisp")))
|
||||
(dolist (f files)
|
||||
(handler-bind ((warning #'muffle-warning))
|
||||
(load f))))
|
||||
|
||||
;; Also run the test files for good measure
|
||||
(dolist (f '("backend/tests.lisp" "backend/modern-tests.lisp"
|
||||
"layout/tests.lisp"
|
||||
"src/components/box-tests.lisp"
|
||||
"src/components/dirty-tests.lisp"
|
||||
"src/components/render-tests.lisp"
|
||||
"src/components/theme-tests.lisp"
|
||||
"src/components/input-tests.lisp"
|
||||
"tests/scrollbox-tabbar-tests.lisp"
|
||||
"tests/select-tests.lisp"
|
||||
"tests/markdown-tests.lisp"
|
||||
"tests/dialog-tests.lisp"
|
||||
"tests/mouse-tests.lisp"
|
||||
"tests/slot-tests.lisp"
|
||||
"tests/framebuffer-tests.lisp"))
|
||||
(load f))
|
||||
|
||||
(format t "~&=== COMPILER AUDIT RESULTS ===~%")
|
||||
(format t "WARNINGS (~d):~%" (length *warnings*))
|
||||
(dolist (w (reverse *warnings*))
|
||||
(format t " ~a~%" w))
|
||||
(format t "STYLE-WARNINGS (~d):~%" (length *style-warnings*))
|
||||
(dolist (w (reverse *style-warnings*))
|
||||
(format t " ~a~%" w))
|
||||
(format t "NOTES (~d):~%" (length *notes*))
|
||||
(dolist (n (reverse *notes*))
|
||||
(format t " ~a~%" n))
|
||||
|
||||
(unless *warnings*
|
||||
(format t "~&No compiler warnings.~%"))
|
||||
(unless *style-warnings*
|
||||
(format t "No style-warnings.~%"))
|
||||
(unless *notes*
|
||||
(format t "No notes.~%"))
|
||||
|
||||
(format t "~&=== AUDIT COMPLETE ===~%")
|
||||
(uiop:quit 0)
|
||||
Reference in New Issue
Block a user