summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3ecee45)
Fix bug 136 (CALL-NEXT-METHOD and lexical rebinding of
arguments):
entomotomy: call-next-method-lexical-args
... delete the MACROLET "optimization" path
forever, even when it is uninterned and all other references to it
are lost.
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:
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 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
+ * 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
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))
(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
(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)
(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)))
(when (pcl-instance-p instance)
(get-slots instance)))
-(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))
;;; 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
(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)
;;;; 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".)
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)