JVM parity: unchecked-char -> char, pr of infinities -> ##Inf
Allowlist review found three addressable divergences: - unchecked-char returned a number; the JVM returns a char. - the readable printer (pr-str, coll elements, the -e/REPL printer) rendered infinities as Infinity/inf; Clojure's readable form is ##Inf/##-Inf/##NaN (str/print still gives Infinity). So (pr-str ##Inf) => ##Inf, (str [##Inf]) => [##Inf], (str ##Inf) => Infinity. Corpus 2695->2698; allowlist 43->40 (drop the 3 now-passing entries). Re-minted.
This commit is contained in:
parent
518683ccd6
commit
4d1ec44676
5 changed files with 19 additions and 20 deletions
|
|
@ -28,11 +28,11 @@
|
|||
(define (jolt-pr-readable x)
|
||||
(cond
|
||||
((string? x) (string-append "\"" (jolt-str-escape x) "\""))
|
||||
;; pr renders the infinities / NaN long-form (Clojure .toString), at every
|
||||
;; nesting level — unlike the -e printer's inf/-inf/nan.
|
||||
((and (flonum? x) (fl= x +inf.0)) "Infinity")
|
||||
((and (flonum? x) (fl= x -inf.0)) "-Infinity")
|
||||
((and (flonum? x) (not (fl= x x))) "NaN")
|
||||
;; pr renders the infinities / NaN in READABLE form (##Inf reads back), unlike
|
||||
;; str's "Infinity"/"-Infinity"/"NaN". Applies at every nesting level.
|
||||
((and (flonum? x) (fl= x +inf.0)) "##Inf")
|
||||
((and (flonum? x) (fl= x -inf.0)) "##-Inf")
|
||||
((and (flonum? x) (not (fl= x x))) "##NaN")
|
||||
;; transients print as a cold tagged type (print-method routes this through a
|
||||
;; multimethod; the readable fallback renders it directly).
|
||||
;; forward refs to transients.ss (loaded later) — resolved at call time.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue