Fix the NIL-as-keyword argument bug for local calls.
it so. (thanks to Markus Ziegler)
** on the Alpha, the compiler succeeds in compiling functions
returning a known number of arguments greater than 63.
+ ** fixed handling of invalid NIL arguments in keyword position
+ in local calls.
planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles
(progn
(ignores dummy val)
(unless (eq name :allow-other-keys)
- (setq loser name))))
+ (setq loser (list name)))))
(let ((info (lambda-var-arg-info var)))
(when (eq (arg-info-key info) name)
(ignores dummy)
(when (and loser (not (optional-dispatch-allowp fun)) (not allowp))
(compiler-warn "function called with unknown argument keyword ~S"
- loser)
+ (car loser))
(setf (basic-combination-kind call) :error)
(return-from convert-more-call)))
\f
;;;; MUFFLE-CONDITIONS test (corresponds to the test in the manual)
(defvar *compiler-note-count* 0)
-#-alpha ; KLUDGE
+#-alpha ; FIXME: make a better test!
(handler-bind ((sb-ext:compiler-note (lambda (c)
(declare (ignore c))
(incf *compiler-note-count*))))
(assert (= *compiler-note-count* 1))
(assert (equal (multiple-value-list (funcall fun 1)) '(5 -5)))))
\f
+(handler-case
+ (eval '(flet ((%f (&key) nil)) (%f nil nil)))
+ (error (c) :good)
+ (:no-error (val) (error "no error: ~S" val)))
+(handler-case
+ (eval '(labels ((%f (&key x) x)) (%f nil nil)))
+ (error (c) :good)
+ (:no-error (val) (error "no error: ~S" val)))
+\f
;;;; tests not in the problem domain, but of the consistency of the
;;;; compiler machinery itself
;;; 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.35"
+"0.8.10.36"