X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fboot.lisp;h=fe00080a9ddee94b222b56708c3fd71d961139df;hb=98f3f617894ce24a40764aa98606ce68c5482cf0;hp=00337250a792612c949f3e914ad8005f41a1e111;hpb=6ff2116ae3bf3c7acd6692b833f74a5abf2eec54;p=sbcl.git diff --git a/src/pcl/boot.lisp b/src/pcl/boot.lisp index 0033725..fe00080 100644 --- a/src/pcl/boot.lisp +++ b/src/pcl/boot.lisp @@ -347,10 +347,8 @@ bootstrapping. lambda-list body env) - (let ((*make-instance-function-keys* nil) - (*optimize-asv-funcall-p* t) + (let ((*optimize-asv-funcall-p* t) (*asv-readers* nil) (*asv-writers* nil) (*asv-boundps* nil)) - (declare (special *make-instance-function-keys*)) (multiple-value-bind (method-lambda unspecialized-lambda-list specializers) (add-method-declarations name qualifiers lambda-list body env) (multiple-value-bind (method-function-lambda initargs) @@ -380,9 +378,6 @@ bootstrapping. ;; intended. I hate that kind of bug (code which silently ;; gives the wrong answer), so we don't do a DECLAIM ;; here. -- WHN 20000229 - ,@(when *make-instance-function-keys* - `((get-make-instance-functions - ',*make-instance-function-keys*))) ,@(when (or *asv-readers* *asv-writers* *asv-boundps*) `((initialize-internal-slot-gfs* ',*asv-readers* ',*asv-writers* ',*asv-boundps*))) @@ -937,7 +932,7 @@ bootstrapping. `(((typep ,emf 'fixnum) (let ((.new-value. ,(car required-args+rest-arg)) (.slots. (get-slots-or-nil - ,(car required-args+rest-arg)))) + ,(cadr required-args+rest-arg)))) (when .slots. (setf (clos-slots-ref .slots. ,emf) .new-value.)))))) ;; (In cmucl-2.4.8 there was a commented-out third ,@(WHEN @@ -1069,7 +1064,7 @@ bootstrapping. ,call) ,call)))) ,(locally - ;; As above, this declaration supresses code + ;; As above, this declaration suppresses code ;; deletion notes. (declare (optimize (inhibit-warnings 3))) (if (and (null ',rest-arg) @@ -1093,18 +1088,6 @@ bootstrapping. (null closurep) (null applyp)) `(let () ,@body)) - ((and (null closurep) - (null applyp)) - ;; OK to use MACROLET, and all args are mandatory - ;; (else APPLYP would be true). - `(call-next-method-bind - (macrolet ((call-next-method (&rest cnm-args) - `(call-next-method-body ,',method-name-declaration - ,(when cnm-args - `(list ,@cnm-args)))) - (next-method-p () - `(next-method-p-body))) - ,@body))) (t `(call-next-method-bind (flet (,@(and call-next-method-p @@ -1658,11 +1641,10 @@ bootstrapping. (method-lambda-list method))) (flet ((lose (string &rest args) (error 'simple-program-error - :format-control "attempt to add the method ~S ~ - to the generic function ~S.~%~ - But ~A" - :format-arguments (list method gf - (apply #'format nil string args)))) + :format-control "~@" + :format-arguments (list method gf string args))) (comparison-description (x y) (if (> x y) "more" "fewer"))) (let ((gf-nreq (arg-info-number-required arg-info)) @@ -1679,13 +1661,13 @@ bootstrapping. (comparison-description nopt gf-nopt))) (unless (eq (or keysp restp) gf-key/rest-p) (lose - "the method and generic function differ in whether they accept~%~ + "the method and generic function differ in whether they accept~_~ &REST or &KEY arguments.")) (when (consp gf-keywords) (unless (or (and restp (not keysp)) allow-other-keys-p (every (lambda (k) (memq k keywords)) gf-keywords)) - (lose "the method does not accept each of the &KEY arguments~%~ + (lose "the method does not accept each of the &KEY arguments~2I~_~ ~S." gf-keywords)))))))