r9539: Automated commit for Debian build of kmrcl upstream-version-1.72
[kmrcl.git] / macros.lisp
index 9b6150a470dc9597470fe8ad2ba8e303e9c3e853..1239eb46b6d7d7cce32b073edc15d0d53a23efe8 100644 (file)
      ,@(mapcar
        (lambda (x) (list 'ignore-errors x))
        forms)))
+
+(defmacro ppmx (form)
+  "Pretty prints the macro expansion of FORM."
+  `(let* ((exp1 (macroexpand-1 ',form))
+         (exp (macroexpand exp1))
+         (*print-circle* nil))
+     (cond ((equal exp exp1)
+           (format t "~&Macro expansion:")
+           (pprint exp))
+          (t (format t "~&First step of expansion:")
+             (pprint exp1)
+             (format t "~%~%Final expansion:")
+             (pprint exp)))
+     (format t "~%~%")
+     (values)))
+
+(defmacro defconst (symbol value &optional doc)
+   `(defconstant ,symbol (if (boundp ',symbol)
+                             (symbol-value ',symbol)
+                             ,value)
+     ,@(when doc (list doc))))