From d771d9b799b609e7b75b799d2879b4fda1ba8fa7 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Mon, 7 Nov 2005 21:41:08 +0000 Subject: [PATCH] 0.9.6.32: Some more references, this time for BUILT-IN-CLASS stuff. --- src/pcl/methods.lisp | 10 +++++----- src/pcl/std-class.lisp | 27 ++++++++++++++++++--------- version.lisp-expr | 2 +- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/pcl/methods.lisp b/src/pcl/methods.lisp index 4122b7b..f333085 100644 --- a/src/pcl/methods.lisp +++ b/src/pcl/methods.lisp @@ -53,15 +53,15 @@ ;;; ;;; Methods are not reinitializable. -(define-condition metaobject-initialization-violation +(define-condition metaobject-initialization-violation (reference-condition simple-condition) - ()) + ()) (macrolet ((def (name args control) `(defmethod ,name ,args (declare (ignore initargs)) (error 'metaobject-initialization-violation - :format-control ,(format nil "~@<~A~@:>" control ) + :format-control ,(format nil "~@<~A~@:>" control) :format-arguments (list ',name) :references (list '(:amop :initialization "Method")))))) (def reinitialize-instance ((method method) &rest initargs) @@ -69,14 +69,14 @@ (def change-class ((method method) new &rest initargs) "Method objects cannot be redefined by ~S.") ;; FIXME: NEW being a subclass of METHOD. - (def update-instance-for-redefined-class ((method method) added discarded + (def update-instance-for-redefined-class ((method method) added discarded plist &rest initargs) "No behaviour specified for ~S on method objects.") (def update-instance-for-different-class (old (new method) &rest initargs) "No behaviour specified for ~S on method objects.") (def update-instance-for-different-class ((old method) new &rest initargs) "No behaviour specified for ~S on method objects.")) - + (defmethod legal-documentation-p ((object standard-method) x) (if (or (null x) (stringp x)) t diff --git a/src/pcl/std-class.lisp b/src/pcl/std-class.lisp index 915180e..b4aa166 100644 --- a/src/pcl/std-class.lisp +++ b/src/pcl/std-class.lisp @@ -1475,15 +1475,24 @@ ;;;; But, there are other parts of the protocol we must follow and those ;;;; definitions appear here. -(defmethod shared-initialize :before - ((class built-in-class) slot-names &rest initargs) - (declare (ignore slot-names initargs)) - (error "attempt to initialize or reinitialize a built in class")) - -(defmethod class-direct-slots ((class built-in-class)) ()) -(defmethod class-slots ((class built-in-class)) ()) -(defmethod class-direct-default-initargs ((class built-in-class)) ()) -(defmethod class-default-initargs ((class built-in-class)) ()) +(macrolet ((def (name args control) + `(defmethod ,name ,args + (declare (ignore initargs)) + (error 'metaobject-initialization-violation + :format-control ,(format nil "~@<~A~@:>" control) + :format-arguments (list ',name) + :references (list '(:amop :initialization "Class")))))) + (def initialize-instance ((class built-in-class) &rest initargs) + "Cannot ~S an instance of BUILT-IN-CLASS.") + (def reinitialize-instance ((class built-in-class) &rest initargs) + "Cannot ~S an instance of BUILT-IN-CLASS.")) + +(macrolet ((def (name) + `(defmethod ,name ((class built-in-class)) nil))) + (def class-direct-slots) + (def class-slots) + (def class-direct-default-initargs) + (def class-default-initargs)) (defmethod validate-superclass ((c class) (s built-in-class)) (or (eq s *the-class-t*) (eq s *the-class-stream*) diff --git a/version.lisp-expr b/version.lisp-expr index 65c8b29..8e5be81 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.6.31" +"0.9.6.32" -- 1.7.10.4