From 17c18c3bc61a955659c806b3c8a292c9ecb185a6 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Fri, 9 Feb 1990 15:40:39 +0000
Subject: [PATCH] Added the *COMPILE-TIME-DEFINE-MACROS* flag so that we can
 compile code:macros.lisp without choking.

---
 compiler/ir1tran.lisp | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp
index bfc316772..ca922fc44 100644
--- a/compiler/ir1tran.lisp
+++ b/compiler/ir1tran.lisp
@@ -14,6 +14,8 @@
 ;;;
 (in-package 'c)
 
+(export '(*compile-time-define-macros* *compiling-for-interpreter*))
+
 (in-package 'ext)
 (export '(ignorable truly-the maybe-inline))
 
@@ -146,6 +148,12 @@
 ;;;
 (defvar *converting-for-interpreter* nil)
 
+;;; *Compile-Time-Define-Macros* is true when we want DEFMACRO definitions to
+;;; be installed in the compilation environment as interpreted functions.  We
+;;; set this to false when compiling some parts of the system.
+;;;
+(defvar *compile-time-define-macros* t)
+
 
 ;;; IR1-Error-Bailout  --  Internal
 ;;;
@@ -2847,9 +2855,11 @@
 
     (setf (info function kind name) :macro)
     (setf (info function where-from name) :defined)
-    (setf (info function macro-function name)
-	  #+new-compiler (coerce def 'function)
-	  #-new-compiler def)
+
+    (when *compile-time-define-macros*
+      (setf (info function macro-function name)
+	    #+new-compiler (coerce def 'function)
+	    #-new-compiler def))
 
     (let ((fun (ir1-convert-lambda def)))
       (setf (leaf-name fun)
-- 
GitLab