(fixed in 0.8.2.51, but a test case would be good)
+276:
+ b. The same as in a., but using MULTIPLE-VALUE-SETQ instead of SETQ.
+ c. (defvar *faa*)
+ (defmethod faa ((*faa* double-float))
+ (set '*faa* (when (< *faa* 0) (- *faa*)))
+ (1+ *faa*))
+ (faa 1d0) => type error
+
278:
a.
(defun foo ()
(reported by Lutz Euler)
* fixed bug: (TYPEP X '(MEMBER ...)) no longer returns a list in
compiled code. (reported by Paul Dietz)
+ * fixed bug 276b: mutating with MULTIPLE-VALUE-SETQ a binding of a
+ specialized parameter to a method to something that is not TYPEP
+ the specializer is now possible.
* contrib improvement: the SB-SIMPLE-STREAMS contrib now defines
STRING-SIMPLE-STREAM and FILE-SIMPLE-STREAM as subclasses of
STRING-STREAM and FILE-STREAM, respectively.
((eq (car form) 'next-method-p)
(setq next-method-p-p t)
form)
- ((eq (car form) 'setq)
+ ((memq (car form) '(setq multiple-value-setq))
;; FIXME: this is possibly a little strong as
;; conditions go. Ideally we would want to detect
;; which, if any, of the method parameters are
(write-line "Break, you sucker!" *faa*)
'ok)
(assert (eq 'ok (faa (make-string-output-stream))))
+(defmethod fex ((x fixnum) (y fixnum))
+ (multiple-value-setq (x y) (values (/ x y) (/ y x)))
+ (list x y))
+(assert (equal (fex 5 3) '(5/3 3/5)))
;;; Bug reported by Zach Beane; incorrect return of (function
;;; ',fun-name) in defgeneric
;;; 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.20.6"
+"0.8.20.7"