Files
cl-tty/scripts/code-audit.lisp
Amr Gharbeia ef613927e6 v1.0.0: merge container (scrollbox + tabbar) into cl-tty.box
Eliminates the cl-tty.container package by merging scrollbox and tabbar
components directly into cl-tty.box, where the component system lives.

Changes:
- added scrollbox/tabbar exports to cl-tty.box defpackage in package.org
- changed scrollbox.org in-package from cl-tty.container to cl-tty.box
- changed tabbar.org in-package from cl-tty.container to cl-tty.box
- tabbar's key-event-key references are qualified with cl-tty.input:
  (avoids circular :use dependency with cl-tty.input which :uses cl-tty.box)
- deleted container-package.org
- updated test packages, integration tests, scripts, ASDF
- all 14 test suites pass at 100%
2026-05-18 16:45:50 -04:00

83 lines
3.0 KiB
Common Lisp

;; 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
'("src/backend/classes.lisp" "src/backend/package.lisp"
"src/backend/detection.lisp" "src/backend/simple.lisp" "src/backend/modern.lisp"
"src/layout/layout.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/package.lisp" "src/components/render.lisp"
"src/components/scrollbox.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 '("src/backend/tests.lisp" "src/backend/modern-tests.lisp"
"src/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/markdown-tests.lisp"
"tests/dialog-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)