From: David Vazquez Date: Sat, 22 Dec 2012 02:17:41 +0000 (+0000) Subject: with-compilation-unit X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=0f5a0991f2c11747b7f09e8efd8774c7a21ddcdd;hp=97b7d106394bf6c989d085b32c9019f2a283265a;p=jscl.git with-compilation-unit --- diff --git a/lispstrack.lisp b/lispstrack.lisp index 3c3b7a0..8de2794 100644 --- a/lispstrack.lisp +++ b/lispstrack.lisp @@ -652,6 +652,18 @@ (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)))