with-compilation-unit
authorDavid Vazquez <davazp@gmail.com>
Sat, 22 Dec 2012 02:17:41 +0000 (02:17 +0000)
committerDavid Vazquez <davazp@gmail.com>
Sat, 22 Dec 2012 02:17:41 +0000 (02:17 +0000)
lispstrack.lisp

index 3c3b7a0..8de2794 100644 (file)
              (ls-compile (ls-macroexpand-1 sexp env fenv) env fenv)
              (compile-funcall (car sexp) (cdr sexp) env fenv))))))
 
+(defmacro with-compilation-unit (&rest body)
+  `(progn
+     (setq *env* nil)
+     (setq *fenv* nil)
+     (setq *compilation-unit-checks* nil)
+     ,@body
+     (dolist (check *compilation-unit-checks*)
+       (funcall check))
+     (setq *env* nil)
+     (setq *fenv* nil)
+     (setq *compilation-unit-checks* nil)))
+
 (defun ls-compile-toplevel (sexp)
   (setq *toplevel-compilations* nil)
   (let ((code (ls-compile sexp nil nil)))