Commit b2647651 authored by ram's avatar ram
Browse files

Changed %COMPILER-ONLY-DEFSTRUCT to be magically called by IR1tran, since

eval-when doesn't do the right thing.
parent b7e75252
......@@ -7,7 +7,7 @@
;;; Scott Fahlman or
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/defstruct.lisp,v 1.49 1993/07/22 00:42:35 ram Exp $")
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/defstruct.lisp,v 1.50 1993/07/30 12:08:41 ram Exp $")
;;; **********************************************************************
......@@ -20,6 +20,7 @@
(export '(
default-structure-print make-structure-load-form
%compiler-defstruct %%compiler-defstruct
%instance-length %instance-ref %instance-set %instance-layout
......@@ -332,8 +333,7 @@
(let ((inherits (inherits-for-structure defstruct)))
(%defstruct ',defstruct ',inherits)
(eval-when (compile eval)
(%compiler-only-defstruct ',defstruct ',inherits))
(%compiler-only-defstruct ',defstruct ',inherits)
,@(when (eq (dd-type defstruct) 'structure)
`((%compiler-defstruct ',defstruct)))
,@(define-raw-accessors defstruct)
......@@ -1337,10 +1337,11 @@
;;; This function is called by an EVAL-WHEN to do the compile-time-only
;;; This function is called at compile-time to do the compile-time-only
;;; actions for defining a structure type. It installs the class in the type
;;; system in a similar way to %DEFSTRUCT, but is quieter and safer in the case
;;; of redefinition.
;;; of redefinition. Eval-when doesn't do the right thing when nested or
;;; non-top-level, so this is magically called by the compiler.
;;; Basically, this function avoids trashing the compiler by only actually
;;; defining the class if there is no current definition. Instead, we just set
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