* known functions, which cannot be open coded by backend, are
considered to be able to check types of their arguments. (reported
by Nathan J. Froyd)
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** COPY-ALIST now signals an error if its argument is a dotted
+ list;
planned incompatible changes in 0.7.x:
* (not done yet, but planned:) When the profiling interface settles
(let ((result (list (car list))))
(do ((x (cdr list) (cdr x))
(splice result
- (cdr (rplacd splice (cons (car x) '() ))) ))
+ (cdr (rplacd splice (cons (car x) '())))))
((atom x)
(unless (null x)
(rplacd splice x))))
(defun copy-alist (alist)
#!+sb-doc
"Return a new association list which is EQUAL to ALIST."
- (if (atom alist)
+ (if (endp alist)
alist
(let ((result
(cons (if (atom (car alist))
(car alist)
- (cons (caar alist) (cdar alist)) )
+ (cons (caar alist) (cdar alist)))
nil)))
(do ((x (cdr alist) (cdr x))
(splice result
(car x)
(cons (caar x) (cdar x)))
nil)))))
- ;; Non-null terminated alist done here.
- ((atom x)
- (unless (null x)
- (rplacd splice x))))
+ ((endp x)))
result)))
(defun copy-tree (object)
(append nil (1 2) nil (3 . 4) nil)
(reverse (1 2 . 3))
(nreverse (1 2 . 3))
- (nreconc (1 2 . 3) (4 5))))
- (assert (raises-error? (apply (first test) (copy-tree (rest test))) type-error)))
+ (nreconc (1 2 . 3) (4 5))
+ (copy-alist ((1 . 2) (3 . 4) . 5))))
+ (assert (raises-error? (apply (first test) (copy-tree (rest test)))
+ type-error)))
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.pre8.5"
+"0.pre8.6"