forever, even when it is uninterned and all other references to it
are lost.
-136:
- (reported by Arnaud Rouanet on cmucl-imp 2001-12-18)
- (defmethod foo ((x integer))
- x)
- (defmethod foo :around ((x integer))
- (let ((x (1+ x)))
- (call-next-method)))
- Now (FOO 3) should return 3, but instead it returns 4.
-
141:
Pretty-printing nested backquotes doesn't work right, as
reported by Alexey Dejneka sbcl-devel 2002-01-13:
* fixed bug 172: macro lambda lists with required arguments after
&REST arguments now cause an error to be signalled. (thanks to
Matthew Danish)
- * fixed Entomotomy PEEK-CHAR-WRONGLY-ECHOS-TO-ECHO-STREAM bug (thanks
- to Matthew Danish)
- * fixed bug 225: STRING-STREAM is now a class (reported by Gilbert
+ * fixed Entomotomy PEEK-CHAR-WRONGLY-ECHOS-TO-ECHO-STREAM
+ bug. (thanks to Matthew Danish)
+ * fixed bug 225: STRING-STREAM is now a class. (reported by Gilbert
Baumann)
+ * fixed bug 136: CALL-NEXT-METHOD no longer gets confused when
+ arguments are lexically rebound. (thanks to Gerd Moellmann and
+ Pierre Mai)
planned incompatible changes in 0.7.x:
* When the profiling interface settles down, maybe in 0.7.x, maybe
(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
(std-instance-slots instance)
(fsc-instance-slots instance)))
(defun get-slots-or-nil (instance)
+ ;; Supress a code-deletion note. FIXME: doing the FIXME above,
+ ;; integrating PCL more with the compiler, would remove the need for
+ ;; this icky stuff.
+ (declare (optimize (inhibit-warnings 3)))
(when (pcl-instance-p instance)
(get-slots instance)))
(in-package :cl-user)
-(defgeneric foo ((x t) (y t) &key &allow-other-keys))
+(defgeneric foo (x y &key &allow-other-keys))
;;; should have no STYLE-WARNINGs (e.g. about unused vars)
(defmethod foo ((x t) (y t))
(defclass subclass-for-class-allocation (superclass-with-slot) ())
(make-instance 'subclass-for-class-allocation)
\f
+;;; bug #136: CALL-NEXT-METHOD was being a little too lexical,
+;;; resulting in failure in the following:
+(defmethod call-next-method-lexical-args ((x integer))
+ x)
+(defmethod call-next-method-lexical-args :around ((x integer))
+ (let ((x (1+ x)))
+ (call-next-method)))
+(assert (= (call-next-method-lexical-args 3) 3))
+\f
;;;; success
(sb-ext:quit :unix-status 104)
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.7.9.48"
+"0.7.9.49"