X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Freader.lisp;h=8f885fa97279d74e279b25087a6cf9314b0b0ed9;hb=HEAD;hp=08a5286084e32547ee1530d9a857e6212fc018e2;hpb=b8359d1e6db950b0a7bd4a255ed6d57a3eac08ef;p=sbcl.git diff --git a/src/code/reader.lisp b/src/code/reader.lisp index 08a5286..8f885fa 100644 --- a/src/code/reader.lisp +++ b/src/code/reader.lisp @@ -1415,17 +1415,17 @@ extended :: syntax." ;; and convert to base-10 conservatively at the end. ;; Use the least positive float, because denormalized exponent ;; can be larger than normalized. - (let* ((max-exponent (- (nth-value - 1 - (decode-float least-positive-long-float)))) + (let* ((max-exponent + #!-long-float + (+ sb!vm:double-float-digits sb!vm:double-float-bias)) (number-magnitude (integer-length number)) (divisor-magnitude (1- (integer-length divisor))) (magnitude (- number-magnitude divisor-magnitude))) (if (minusp exponent) (max exponent (ceiling (- (+ max-exponent magnitude)) - (floor (log 10 2)))) + #.(floor (log 10 2)))) (min exponent (floor (- max-exponent magnitude) - (floor (log 10 2))))))) + #.(floor (log 10 2))))))) (defun make-float (stream) ;; Assume that the contents of *read-buffer* are a legal float, with nothing