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:
33
scripts/find-t-form.lisp
Normal file
33
scripts/find-t-form.lisp
Normal 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"))
|
||||
Reference in New Issue
Block a user