]> gitweb.factorcode.org Git - factor.git/commitdiff
prettyprint.backend: fix prettyprinting of special nans.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 19 Dec 2021 00:05:26 +0000 (16:05 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 19 Dec 2021 00:05:26 +0000 (16:05 -0800)
basis/prettyprint/backend/backend.factor

index 26cc50bd41ea239a04f738ac80708435d03823e4..56200756c0160f344f208b009071772bc7448e16 100644 (file)
@@ -82,18 +82,22 @@ M: real pprint*
         [ unsupported-number-base ]
     } case ;
 
-: pprint-nan? ( f -- ? )
-    { [ fp-nan? ] [ 0/0. fp-bitwise= not ] [ -0/0. fp-bitwise= not ] } 1&& ;
-
 M: float pprint*
-    dup pprint-nan? [
-        \ NAN: [
-            [ fp-nan-payload ] [ fp-sign ] bi
-            [ 0xfffffffffffff bitxor 1 + neg ] when >hex text
-        ] pprint-prefix
-    ] [
-        call-next-method
-    ] if ;
+    {
+        { [ dup 0/0. fp-bitwise= ] [ drop "0/0." text ] }
+        { [ dup -0/0. fp-bitwise= ] [ drop "-0/0." text ] }
+        { [ dup fp-nan? ] [
+            \ NAN: [
+                [ fp-nan-payload ] [ fp-sign ] bi
+                [ 0xfffffffffffff bitxor 1 + neg ] when >hex text
+            ] pprint-prefix
+        ] }
+        { [ dup 1/0. = ] [ drop "1/0." text ] }
+        { [ dup -1/0. = ] [ drop "-1/0." text ] }
+        { [ dup 0.0 fp-bitwise= ] [ drop "0.0" text ] }
+        { [ dup -0.0 fp-bitwise= ] [ drop "-0.0" text ] }
+        [ call-next-method ]
+    } cond ;
 
 M: f pprint* drop \ f pprint-word ;