From: Christophe Rhodes Date: Sun, 19 Oct 2003 19:09:11 +0000 (+0000) Subject: 0.8.4.35: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=de393e0d20912200278b4e5666e3445fec3b46ba;p=sbcl.git 0.8.4.35: One last little PCL frob ... when declaring defgenerics, don't foolishly assume that all extended function names are of the form (SETF ..) ... now internal PCL generic functions can have lambda lists ... and that's all of the ones at startup, so let's write an internalsish test to ensure that it stays that way --- diff --git a/src/pcl/boot.lisp b/src/pcl/boot.lisp index 53bc73e..40c13b4 100644 --- a/src/pcl/boot.lisp +++ b/src/pcl/boot.lisp @@ -1524,8 +1524,6 @@ bootstrapping. *)))) (defun defgeneric-declaration (spec lambda-list) - (when (consp spec) - (setq spec (get-setf-fun-name (cadr spec)))) `(ftype ,(ftype-declaration-from-lambda-list lambda-list spec) ,spec)) ;;;; early generic function support diff --git a/src/pcl/slots-boot.lisp b/src/pcl/slots-boot.lisp index a283337..43bf09a 100644 --- a/src/pcl/slots-boot.lisp +++ b/src/pcl/slots-boot.lisp @@ -469,15 +469,16 @@ initargs))) (defun initialize-internal-slot-gfs (slot-name &optional type) - (macrolet ((frob (type name-fun add-fun) + (macrolet ((frob (type name-fun add-fun ll) `(when (or (null type) (eq type ',type)) (let* ((name (,name-fun slot-name)) - (gf (ensure-generic-function name)) + (gf (ensure-generic-function name + :lambda-list ',ll)) (methods (generic-function-methods gf))) (when (or (null methods) (plist-value gf 'slot-missing-method)) (setf (plist-value gf 'slot-missing-method) nil) (,add-fun *the-class-slot-object* gf slot-name)))))) - (frob reader slot-reader-name add-reader-method) - (frob writer slot-writer-name add-writer-method) - (frob boundp slot-boundp-name add-boundp-method))) + (frob reader slot-reader-name add-reader-method (object)) + (frob writer slot-writer-name add-writer-method (new-value object)) + (frob boundp slot-boundp-name add-boundp-method (object)))) diff --git a/version.lisp-expr b/version.lisp-expr index 0603f01..04610ef 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.8.4.34" +"0.8.4.35"