Recently Written · git

tmpl

Insanely simple templates

git clone https://github.com/equwal/tmpl

Log | Files | Refs


commit 049d09d310acc8ec50b9340090423244bafc304a
map588 <map588@pitt.edu>
2026-09-27 02:29:01 -0400

Fix defstruct template and make the Lisp read check syntax-only

cl/defstruct had one close parenthesis too many. The read check now
binds *read-suppress*, so a package-qualified symbol or a #. form
does not fail the check. CI found all three.

 cl/defstruct          | 3 +--
 tests/read-forms.lisp | 5 ++++-
 2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/cl/defstruct b/cl/defstruct
index 105d462..ec9d783 100644
--- a/cl/defstruct
+++ b/cl/defstruct
@@ -1,5 +1,4 @@
 ;; defstruct with options and one slot
 (defstruct (<++> :<++> <++>) ; name and options*
   "<++>"
-  (<++> <++> :<++> <++>) ; name initform options*
-  ))
+  (<++> <++> :<++> <++>)) ; name initform options*
diff --git a/tests/read-forms.lisp b/tests/read-forms.lisp
index dd5d7cf..e719e85 100644
--- a/tests/read-forms.lisp
+++ b/tests/read-forms.lisp
@@ -1,5 +1,8 @@
 ;; Read every form in the file named on the command line. Exit 1 on a read error.
-(let ((path (second sb-ext:*posix-argv*)))
+;; *read-suppress* makes the reader check syntax only: it does not intern
+;; symbols in packages that do not exist and does not evaluate #. forms.
+(let ((path (second sb-ext:*posix-argv*))
+      (*read-suppress* t))
   (handler-case
       (with-open-file (in path)
         (loop for form = (read in nil in)