From c020bd4febb6610393970416fe4f8b99732e04ec Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 9 Jun 2019 08:49:52 -0600 Subject: [PATCH] racket/fasl: repair for +nan.f The `racket/fasl` implementation wasn't updated with the change to disable reading for lfoating-point literals. --- pkgs/racket-test-core/tests/racket/fasl.rktl | 8 ++++++-- racket/collects/racket/fasl.rkt | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/fasl.rktl b/pkgs/racket-test-core/tests/racket/fasl.rktl index 6dd6bd9239..b5ed8386e9 100644 --- a/pkgs/racket-test-core/tests/racket/fasl.rktl +++ b/pkgs/racket-test-core/tests/racket/fasl.rktl @@ -42,8 +42,12 @@ (for ([i (in-list immutables)]) (test i fasl->s-exp (s-exp->fasl i))) -(test 46f0 fasl->s-exp (s-exp->fasl 46f0)) -(test (vector #t 46f0) fasl->s-exp (s-exp->fasl (vector #t 46f0))) +(when (single-flonum-available?) + (let ([n46f0 (real->single-flonum 46.0)]) + (test n46f0 fasl->s-exp (s-exp->fasl n46f0)) + (test (vector #t n46f0) fasl->s-exp (s-exp->fasl (vector #t n46f0)))) + (let ([nan (real->single-flonum +nan.0)]) + (test #t eqv? nan (fasl->s-exp (s-exp->fasl nan))))) (test "4.5t0" format "~a" (fasl->s-exp (s-exp->fasl 4.5t0))) diff --git a/racket/collects/racket/fasl.rkt b/racket/collects/racket/fasl.rkt index c0d862a747..ba918fa8e4 100644 --- a/racket/collects/racket/fasl.rkt +++ b/racket/collects/racket/fasl.rkt @@ -202,7 +202,7 @@ o)] [(single-flonum? v) (write-byte fasl-single-flonum-type o) - (write-bytes (if (eqv? v +nan.f) + (write-bytes (if (eqv? v (real->single-flonum +nan.0)) ;; use a canonical NaN (0 mantissa) #"\0\0\300\177" (real->floating-point-bytes v 4 #f))