From: Christophe Rhodes Date: Fri, 5 Dec 2003 18:34:40 +0000 (+0000) Subject: 0.8.6.29: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=6fd484302b8bf89803e3246a61412dc13191ffb2;p=sbcl.git 0.8.6.29: further (VECTOR NIL) depessimization ... optimize the usual case in STRING-SOUT --- diff --git a/NEWS b/NEWS index 9003e89..a9f68f1 100644 --- 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 diff --git a/src/code/stream.lisp b/src/code/stream.lisp index e5296c8..77c29bc 100644 --- a/src/code/stream.lisp +++ b/src/code/stream.lisp @@ -1224,7 +1224,9 @@ (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)) diff --git a/version.lisp-expr b/version.lisp-expr index 149ba8c..f5eaf92 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.6.28" +"0.8.6.29"