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 @@ ...@@ -108,12 +108,20 @@
(load "nicode:netnamemsgdefs.lisp") (load "nicode:netnamemsgdefs.lisp")
(comf "nicode:netnameuser"))) (comf "nicode:netnameuser")))
(comf "ncode:defstruct") ;;; Compile basic macros that we assume are already in the compilation
(comf "ncode:defmacro") ;;; environment. We inhibit compile-time definition to prevent these functions
(comf "ncode:macros") ;;; from becoming interpreted. In some cases, this is necessary for
(comf "ncode:defrecord") ;;; compilation to work at all, since the expander functions are lazily
(comf "ncode:constants") ;;; converted: we could go into an infinite recursion trying to convert the
;;; definition of a macro which uses itself.
(comf "c:globaldb") ;;;
(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 ); 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