diff --git a/tools/worldcom.lisp b/tools/worldcom.lisp index 5549125553172e050c432d855d39fa1b3970ccb7..68a95d91546ff3fd1ac1c72c7c53a3ec11c5d80f 100644 --- a/tools/worldcom.lisp +++ b/tools/worldcom.lisp @@ -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