Commit 86e2d24d authored by ram's avatar ram
Browse files

Added binding of C:*COMPILE-TIME-DEFINE-MACROS* to NIL around compilation of

system macros (at end of compilation.)  This prevents infinite recursions due
to trying to interpret circularly defined macros.
parent 17c18c3b
......@@ -108,12 +108,20 @@
(load "nicode:netnamemsgdefs.lisp")
(comf "nicode:netnameuser")))
(comf "ncode:defstruct")
(comf "ncode:defmacro")
(comf "ncode:macros")
(comf "ncode:defrecord")
(comf "ncode:constants")
(comf "c:globaldb")
;;; Compile basic macros that we assume are already in the compilation
;;; environment. We inhibit compile-time definition to prevent these functions
;;; from becoming interpreted. In some cases, this is necessary for
;;; compilation to work at all, since the expander functions are lazily
;;; converted: we could go into an infinite recursion trying to convert the
;;; definition of a macro which uses itself.
;;;
(let ((c:compile-time-define-macros* nil))
(comf "ncode:defstruct")
(comf "ncode:defmacro")
(comf "ncode:macros")
(comf "ncode:defrecord")
(comf "ncode:constants")
(comf "c:globaldb"))
); with-compiler-log-file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment