;; while attempting to constant-fold. Maybe some sort
;; of load-time-form magic could be used instead?
(case float-format
- (short-float
- (values
- (log sb!xc:least-positive-normalized-short-float 10s0)
- (log sb!xc:most-positive-short-float 10s0)))
- (single-float
+ ((short-float single-float)
(values
(log sb!xc:least-positive-normalized-single-float 10f0)
(log sb!xc:most-positive-single-float 10f0)))
- (double-float
+ ((double-float #!-long-float long-float)
(values
(log sb!xc:least-positive-normalized-double-float 10d0)
(log sb!xc:most-positive-double-float 10d0)))
+ #!+long-float
(long-float
(values
- (log sb!xc:least-positive-normalized-long-float 10L0)
- (log sb!xc:most-positive-long-float 10L0))))
+ (log sb!xc:least-positive-normalized-long-float 10l0)
+ (log sb!xc:most-positive-long-float 10l0))))
(let ((correction (cond ((<= exponent min-expo)
(ceiling (- min-expo exponent)))
((>= exponent max-expo)
and the lisp object built by the reader is returned. Macro chars
will take effect."
(declare (string string))
+
(with-array-data ((string string)
(start start)
- (end (or end (length string))))
+ (end (%check-vector-sequence-bounds string start end)))
(unless *read-from-string-spares*
(push (internal-make-string-input-stream "" 0 0)
*read-from-string-spares*))
:format-arguments (list string))))
(with-array-data ((string string)
(start start)
- (end (or end (length string))))
+ (end (%check-vector-sequence-bounds string start end)))
(let ((index (do ((i start (1+ i)))
((= i end)
(if junk-allowed