> * Raymond Toy <[EMAIL PROTECTED]> [2004-10-22 09:32:51 -0400]:
>
>>>>>> "Sam" == Sam Steingold <[EMAIL PROTECTED]> writes:
>
>     Sam> the objects for which the load forms cannot be created are just 
> regular
>     Sam> structure objects, like
>
>     Sam> (defstruct foo bar)
>     Sam> (defparameter *foo* #S(foo :bar 10))
>
> Don't you need to define a make-load-form for this?

maybe, but GCL, CLISP and LW work without a MAKE-LOAD-FORM method.
when I add this:

#+cmu
(defmethod make-load-form ((self structure-object) &optional environment)
  (make-load-form-saving-slots self :environment environment))

I get a zillion errors:

; In: DEFSTRUCT FOO

;   (DEFSTRUCT FOO A B C)
; --> PROGN SETF LET* LET* KERNEL::FIND-CLASS OR LET KERNEL:CLASS-CELL-CLASS
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE
; --> PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN SETF
; --> PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN
; --> SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN
; --> PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE
; --> PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE
; --> PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN SETF
; --> PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN
; --> SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN
; --> PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE
; --> PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE
; --> PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN SETF
; --> PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN
; --> SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN
; --> PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE
; --> PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE
; --> PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN SETF
; --> PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN
; --> SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN
; --> PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE
; --> PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE
; --> PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN SETF
; --> PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN
; --> SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN
; --> PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE
; --> PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE
; --> PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN SETF
; --> PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN
; --> SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN
; --> PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE
; --> PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE
; --> PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN SETF
; --> PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN PROGN
; --> SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE PROGN
; --> PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET QUOTE
; --> PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE LET
; --> QUOTE PROGN PROGN SETF PCL::SET-SLOT-VALUE PCL::ACCESSOR-SET-SLOT-VALUE
; --> LET
; ==>
;   '#<Function KERNEL::NAMED-SIMPLE-SUBTYPEP-TYPE-METHOD {10011F11}>
; Error: Cannot dump objects of type FUNCTION into fasl files.
;
; Byte Compiling Load Time Value of (PCL::ENSURE-ACCESSOR 'PCL::WRITER
                                         '(PCL:SLOT-ACCESSOR :GLOBAL
                                           KERNEL::COMPLEX-SUBTYPEP-ARG1 ...)
                                         ...):


-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
To a Lisp hacker, XML is S-expressions with extra cruft.


Reply via email to