* fixed bug: as reported by Peter Graves on #lisp IRC, passing a NIL
in keyword position to MAKE-PACKAGE was not being reported as
invalid.
+ * fixed bug: as reported by Juan Ripoll on cmucl-imp,
+ MULTIPLE-VALUE-BIND should be able to lexically bind lambda list
+ keywords.
* optimization: rearranged the expansion of various defining macros
so that each expands into only one top-level form in a
:LOAD-TOPLEVEL context; this appears to decrease fasl sizes by
** on the Alpha, the compiler succeeds in compiling functions
returning a known number of arguments greater than 63.
-
planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles
down, it might impact TRACE. They both encapsulate functions, and
`(let ((,(car vars) ,value-form))
,@body)
(let ((ignore (gensym)))
- `(multiple-value-call #'(lambda (&optional ,@vars &rest ,ignore)
+ `(multiple-value-call #'(lambda (&optional ,@(mapcar #'list vars)
+ &rest ,ignore)
(declare (ignore ,ignore))
,@body)
,value-form)))
(defconstant +const+ 3))
(assert (= (oidentity +const+) 3))
+;;; MULTIPLE-VALUE-BIND and lambda list keywords
+(multiple-value-bind (&rest &optional &key &allow-other-keys)
+ (values 1 2 3)
+ (assert (= &rest 1))
+ (assert (= &optional 2))
+ (assert (= &key 3))
+ (assert (null &allow-other-keys)))
+
;;; success
(quit :unix-status 104)
;;; 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.10.33"
+"0.8.10.34"