From 6cff481eab6726fcb73ef1d5f23cd63f18385ac1 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Tue, 18 Jun 2002 13:14:17 +0000 Subject: [PATCH] 0.7.4.38: Final OpenMCL fixes ... dubiously fix a FIXME in the reader with something that superficially looks better but is in fact just as wrong. Now SBCL compiles under an unpatched released OpenMCL! --- src/code/reader.lisp | 27 +++++++++++++-------------- version.lisp-expr | 2 +- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/code/reader.lisp b/src/code/reader.lisp index c97cae9..821a9e4 100644 --- a/src/code/reader.lisp +++ b/src/code/reader.lisp @@ -1213,29 +1213,28 @@ ;; appropriately. This should avoid any unnecessary ;; underflow or overflow problems. (multiple-value-bind (min-expo max-expo) - ;; FIXME: These #. forms are broken w.r.t. - ;; cross-compilation portability. Maybe expressions - ;; like - ;; (LOG SB!XC:MOST-POSITIVE-SHORT-FLOAT 10s0) - ;; could be used instead? Or perhaps some sort of - ;; load-time-form magic? + ;; FIXME: These forms are broken w.r.t. + ;; cross-compilation portability, as the + ;; cross-compiler will call the host's LOG function + ;; while attempting to constant-fold. Maybe some sort + ;; of load-time-form magic could be used instead? (case float-format (short-float (values - #.(log least-positive-normalized-short-float 10s0) - #.(log most-positive-short-float 10s0))) + (log sb!xc:least-positive-normalized-short-float 10s0) + (log sb!xc:most-positive-short-float 10s0))) (single-float (values - #.(log least-positive-normalized-single-float 10f0) - #.(log most-positive-single-float 10f0))) + (log sb!xc:least-positive-normalized-single-float 10f0) + (log sb!xc:most-positive-single-float 10f0))) (double-float (values - #.(log least-positive-normalized-double-float 10d0) - #.(log most-positive-double-float 10d0))) + (log sb!xc:least-positive-normalized-double-float 10d0) + (log sb!xc:most-positive-double-float 10d0))) (long-float (values - #.(log least-positive-normalized-long-float 10L0) - #.(log 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) diff --git a/version.lisp-expr b/version.lisp-expr index 2753360..7e61201 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.4.37" +"0.7.4.38" -- 1.7.10.4