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:
Hermes Agent
2026-05-12 13:42:39 +00:00
parent 30fdb1def8
commit b21daa99b8
19 changed files with 1044 additions and 231 deletions

33
scripts/find-t-form.lisp Normal file
View File

@@ -0,0 +1,33 @@
;; Compile input.lisp form-by-form to isolate bug 2
(load "~/quicklisp/setup.lisp")
(ql:register-local-projects)
(ql:quickload :cl-tty :silent t)
(defun compile-forms-in-file (path)
"Read each top-level form from PATH and compile-file each individually."
(with-open-file (s path)
(loop with form-num = 0
for form = (read s nil s)
until (eq form s)
do (incf form-num)
(let ((tmp-path (format nil "/tmp/input-form-~d.lisp" form-num)))
(with-open-file (out tmp-path :direction :output :if-exists :supersede)
;; Preserve the package
(prin1 `(in-package ,(package-name *package*)) out)
(terpri out)
(prin1 form out)
(terpri out))
(multiple-value-bind (fasl warn-p fail-p)
(compile-file tmp-path :print nil :verbose nil)
(format t "Form ~2d: warn=~a fail=~a~%"
form-num warn-p fail-p)
(when (or warn-p fail-p)
(rename-file tmp-path (format nil "/tmp/input-bad-form-~d.lisp" form-num) :if-exists :supersede)
(with-open-file (f (format nil "/tmp/input-bad-form-~d.txt" form-num) :direction :output :if-exists :supersede)
(prin1 form f)))
(when (and fasl (probe-file fasl))
(delete-file fasl))
(delete-file tmp-path))))))
(let ((*package* (find-package :cl-tty.input)))
(compile-forms-in-file "src/components/input.lisp"))