MAKE-LOAD-FORM specialized on STANDARD-OBJECT, STRUCTURE-OBJECT and CONDITION must signal an error

This commit is contained in:
Juan Jose Garcia Ripoll 2012-04-23 19:30:46 +02:00
parent 66d4d462a4
commit 434e1ad46e
3 changed files with 17 additions and 3 deletions

View file

@ -11,6 +11,9 @@ ECL 12.2.2:
- REMOVE-METHOD and FIND-METHOD were not generic functions.
- MAKE-LOAD-FORM's methods for standard-object, structure-object and
condition did not signal an error).
* Visible changes:
- DIRECTORY no longer complains when it finds an inexistent directory

View file

@ -14,12 +14,12 @@
"src:clos;stdmethod.lsp"
"src:clos;generic.lsp"
"src:clos;fixup.lsp"
"src:clos;conditions.lsp"
"src:clos;print.lsp"
#+clos-streams
"src:clos;streams.lsp"
#+cmu-format
"src:lsp;pprint.lsp"
"src:clos;conditions.lsp"
"src:lsp;describe.lsp" ; Depends on conditions.lsp
"src:clos;inspect.lsp" ; Depends on describe.lsp
"src:lsp;top.lsp" ; Depends on conditions.lsp

View file

@ -134,10 +134,21 @@ printer and we should rather use MAKE-LOAD-FORM."
`(ext:hash-table-fill ,make-form ',content)
nil))))
(t
(error "Cannot externalize object ~a" object)))))
(no-make-load-form object)))))
(defmethod make-load-form ((object standard-object) &optional environment)
(make-load-form-saving-slots object :environment environment))
(no-make-load-form object))
(defmethod make-load-form ((object structure-object) &optional environment)
(no-make-load-form object))
(defmethod make-load-form ((object condition) &optional environment)
(no-make-load-form object))
(defun no-make-load-form (object)
(declare (si::c-local))
(error "No adequate specialization of MAKE-LOAD-FORM for an object of type"
(type-of object)))
(defmethod make-load-form ((class class) &optional environment)
(declare (ignore environment))