From 5c139b13882a2632a27a7f8fd81c8f1ab62b10a0 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Mon, 8 Sep 2003 09:00:17 +0000 Subject: [PATCH] 0.8.3.44: "Oops" ... as reported on #lisp IRC by pfdietz, FILL would on occasion consume all available CPU and RAM... ... unbreak the new vectorized transform by returning the sequence argument rather than NIL. --- src/compiler/generic/vm-tran.lisp | 2 +- tests/seq.pure.lisp | 5 +++++ version.lisp-expr | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/compiler/generic/vm-tran.lisp b/src/compiler/generic/vm-tran.lisp index df2dcb7..4bb3a9f 100644 --- a/src/compiler/generic/vm-tran.lisp +++ b/src/compiler/generic/vm-tran.lisp @@ -383,7 +383,7 @@ ((= index end) (let ((place (* times 4))) (declare (fixnum place)) - (dotimes (j rem) + (dotimes (j rem sequence) (declare (index j)) (setf (schar sequence (the index (+ place j))) item)))) (declare (optimize (speed 3) (safety 0)) diff --git a/tests/seq.pure.lisp b/tests/seq.pure.lisp index 1123ae2..18ea6dc 100644 --- a/tests/seq.pure.lisp +++ b/tests/seq.pure.lisp @@ -156,3 +156,8 @@ (assert (equal (stable-sort (list 1 2 3 -3 -2 -1) '< :key 'abs) '(1 -1 2 -2 3 -3))) +;;; CSR broke FILL by not returning the sequence argument in a transform. +(let* ((s1 (copy-seq "abcde")) + (s2 (fill s1 #\z))) + (assert s2) + (assert (string= s2 "zzzzz"))) diff --git a/version.lisp-expr b/version.lisp-expr index 03affac..9d398ae 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; 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.3.43" +"0.8.3.44" -- 1.7.10.4