0.8.6.29:
authorChristophe Rhodes <csr21@cam.ac.uk>
Fri, 5 Dec 2003 18:34:40 +0000 (18:34 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Fri, 5 Dec 2003 18:34:40 +0000 (18:34 +0000)
further (VECTOR NIL) depessimization
... optimize the usual case in STRING-SOUT

NEWS
src/code/stream.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 9003e89..a9f68f1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2202,6 +2202,8 @@ changes in sbcl-0.8.7 relative to sbcl-0.8.6:
   * bug fix: buffered :DIRECTION :IO streams are less likely to become
     confused about their position.  (thanks to Adam Warner and Gerd 
     Moellmann)
+  * optimization: performance of string output streams is now less
+    poor for multiple small sequence writes.
   * ASDF-INSTALL bug fix: now parses *PROXY* properly.  (thanks to
     Sean Ross)
   * SB-SIMPLE-STREAMS enhancement: simple-streams can now be used as
index e5296c8..77c29bc 100644 (file)
 (defun string-sout (stream string start end)
   (declare (type simple-string string)
           (type fixnum start end))
-  (let* ((string (coerce string '(simple-array character (*))))
+  (let* ((string (if (typep string '(simple-array character (*)))
+                    string
+                    (coerce string '(simple-array character (*)))))
         (current (string-output-stream-index stream))
         (length (- end start))
         (dst-end (+ length current))
index 149ba8c..f5eaf92 100644 (file)
@@ -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.6.28"
+"0.8.6.29"