From aea1df3a93eeb4e75d049f2818f96e6cff15d3fb Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Tue, 12 Nov 1991 14:13:22 +0000
Subject: [PATCH] Changed the :EVAL-NAME option to DEFTRANSFORM to also eval
 the argument and result type specs.

---
 compiler/macros.lisp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/compiler/macros.lisp b/compiler/macros.lisp
index f4ba83ad8..cd93c8129 100644
--- a/compiler/macros.lisp
+++ b/compiler/macros.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/macros.lisp,v 1.25 1991/10/03 18:32:32 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/macros.lisp,v 1.26 1991/11/12 14:13:22 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -435,8 +435,9 @@
               this transformation is appropriate.  If the result is false, then
               the transform automatically passes.
     :Eval-Name
-    	    - The name is actually a form to be evaluated.  Useful for getting
-	      closures that transform similar functions.
+    	    - The name and argument/result types are actually forms to be
+              evaluated.  Useful for getting closures that transform similar
+              functions.
     :Defun-Only
             - Don't actually instantiate a transform, instead just DEFUN
               Name with the specified transform definition function.  This may
@@ -474,7 +475,9 @@
 	    `(defun ,name ,@(when doc `(,doc)) ,@stuff)
 	    `(%deftransform
 	      ,(if eval-name name `',name)
-	      '(function ,arg-types ,result-type)
+	      ,(if eval-name
+		   ``(function ,,arg-types ,,result-type)
+		   `'(function ,arg-types ,result-type))
 	      #'(lambda ,@stuff)
 	      ,doc))))))
 
-- 
GitLab