From: Christophe Rhodes Date: Thu, 27 Jan 2005 20:31:44 +0000 (+0000) Subject: 0.8.19.1: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=fedd9f4e92ddb1b599695043eb1dafe356475afc;p=sbcl.git 0.8.19.1: Merged fix from Teemu Kalvas for reading multibyte characters across a buffer boundary ("probable bug in UTF-8 external-format support" sbcl-devel 2005-01-23) --- diff --git a/BUGS b/BUGS index a5e9e22..08a6dc8 100644 --- a/BUGS +++ b/BUGS @@ -2038,3 +2038,12 @@ WORKAROUND: (let ((i (sb-c::values-type-intersection x y))) (assert (sb-c::type= i (sb-c::values-type-intersection i x))) (assert (sb-c::type= i (sb-c::values-type-intersection i y))))))) + +370: reader misbehaviour on large-exponent floats + (read-from-string "1.0s1000000000000000000000000000000000000000") + causes the reader to attempt to create a very large bignum (which it + will then attempt to coerce to a rational). While this isn't + completely wrong, it is probably not ideal -- checking the floating + point control word state and then returning the relevant float + (most-positive-short-float or short-float-infinity) or signalling an + error immediately would seem to make more sense. diff --git a/NEWS b/NEWS index 0d05ab9..9406e6e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +changes in sbcl-0.8.20 (0.9alpha.0?) relative to sbcl-0.8.18: + * fixed some bugs related to Unicode integration: + ** portions of multibyte characters at the end of buffers for + character-based file input are correctly transferred to the + start of the buffer at the next read. + changes in sbcl-0.8.19 relative to sbcl-0.8.18: * new port: SBCL now works in native 64-bit mode on x86-64/Linux platform. The port supports 61-bit fixnums, large memory spaces diff --git a/src/code/fd-stream.lisp b/src/code/fd-stream.lisp index dfadf54..f86b9ad 100644 --- a/src/code/fd-stream.lisp +++ b/src/code/fd-stream.lisp @@ -949,7 +949,7 @@ (when (null count) (simple-stream-perror "couldn't read from ~S" stream err)) (setf (fd-stream-listen stream) nil - (fd-stream-ibuf-head stream) new-head + (fd-stream-ibuf-head stream) 0 (fd-stream-ibuf-tail stream) (+ count new-head)) count))) diff --git a/version.lisp-expr b/version.lisp-expr index 3044d13..eff2dce 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.19" +"0.8.19.1"