From dd0e7aad8215b548fdb1e402affdc0caad95b621 Mon Sep 17 00:00:00 2001 From: Kevin Rosenberg Date: Fri, 11 Jan 2008 18:59:58 +0000 Subject: [PATCH] 1.0.13.24: * sb-aclrepl: Fix inspection of single-floats on 64-bit platforms which are now unboxed data. --- NEWS | 2 ++ contrib/sb-aclrepl/inspect.lisp | 14 +++++++++++--- version.lisp-expr | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 024b609..ef17dc0 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,8 @@ changes in sbcl-1.0.14 relative to sbcl-1.0.13: * bug fix: RESOLVE-CONFLICT (and the other name conflict machinery) is now actually exported from SB-EXT as documented. (reported by Maciej Katafiasz) + * bug fix: sb-aclrepl now correctly understands how to inspect + single-floats on 64-bit platforms where single-floats are not boxed. changes in sbcl-1.0.13 relative to sbcl-1.0.12: * minor incompatible change: RUN-PROGRAM now uses execvp(3) to find diff --git a/contrib/sb-aclrepl/inspect.lisp b/contrib/sb-aclrepl/inspect.lisp index f6cbcc7..8ded127 100644 --- a/contrib/sb-aclrepl/inspect.lisp +++ b/contrib/sb-aclrepl/inspect.lisp @@ -326,6 +326,7 @@ The commands are: (format stream "~A" (inspected-description object)) (unless (or *skip-address-display* (eq object *inspect-unbound-object-marker*) + (and (= sb-vm::n-word-bits 64) (typep object 'single-float)) (characterp object) (typep object 'fixnum)) (write-string " at #x" stream) (format stream (n-word-bits-hex-format) @@ -655,9 +656,16 @@ cons cells and LIST-TYPE is :normal, :dotted, or :cyclic" (ref32-hexstr object start)))) (defmethod inspected-description ((object single-float)) - (description-maybe-internals "single-float ~W" (list object) - "[#x~A]" - (ref32-hexstr object (round sb-vm::n-word-bits 8)))) + (ecase sb-vm::n-word-bits + (32 + (description-maybe-internals "single-float ~W" (list object) + "[#x~A]" + (ref32-hexstr object (round sb-vm::n-word-bits 8)))) + (64 + ;; on 64-bit platform, single-floats are not boxed + (description-maybe-internals "single-float ~W" (list object) + "[#x~8,'0X]" + (sb-kernel:get-lisp-obj-address object))))) (defmethod inspected-description ((object fixnum)) (description-maybe-internals diff --git a/version.lisp-expr b/version.lisp-expr index bd6f491..afb5f07 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".) -"1.0.13.23" +"1.0.13.24" -- 1.7.10.4