]> gitweb.factorcode.org Git - factor.git/commitdiff
prettyprint: print signed nan payload.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 2 Mar 2021 18:34:05 +0000 (10:34 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 2 Mar 2021 18:34:05 +0000 (10:34 -0800)
basis/prettyprint/backend/backend.factor
basis/prettyprint/prettyprint-tests.factor

index fba8307787199590fc16de360d4e09be0e46b912..26cc50bd41ea239a04f738ac80708435d03823e4 100644 (file)
@@ -82,12 +82,15 @@ M: real pprint*
         [ unsupported-number-base ]
     } case ;
 
-: payload-nan? ( f -- ? )
+: pprint-nan? ( f -- ? )
     { [ fp-nan? ] [ 0/0. fp-bitwise= not ] [ -0/0. fp-bitwise= not ] } 1&& ;
 
 M: float pprint*
-    dup payload-nan? [
-        \ NAN: [ double>bits >hex text ] pprint-prefix
+    dup pprint-nan? [
+        \ NAN: [
+            [ fp-nan-payload ] [ fp-sign ] bi
+            [ 0xfffffffffffff bitxor 1 + neg ] when >hex text
+        ] pprint-prefix
     ] [
         call-next-method
     ] if ;
index 6e7d7acb50ba50adf725afc089ea4096885de273..8f4c9771359cd8c3339d0197f340a124d82bd21d 100644 (file)
@@ -23,6 +23,8 @@ IN: prettyprint.tests
 { "-1/0." } [ -1/0. unparse ] unit-test
 { "0/0." } [ 0/0. unparse ] unit-test
 { "-0/0." } [ -0/0. unparse ] unit-test
+{ "NAN: 123" } [ NAN: 123 unparse ] unit-test
+{ "NAN: -123" } [ NAN: -123 unparse ] unit-test
 
 { "+" } [ \ + unparse ] unit-test