From 2089562e733c8baeeb6090af531a02564654885a Mon Sep 17 00:00:00 2001 From: Gustavo Massaccesi Date: Wed, 5 Jun 2019 22:50:28 -0300 Subject: [PATCH] fix flag in signature of inexact->exact It fails when the argument is +inf.0, so it's not possible to make it unsafe automatically when the argument is a number. original commit: 4d31d65b0e685adca7c01973cf7f30e716356a6b --- s/primdata.ss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/s/primdata.ss b/s/primdata.ss index 90fedda559..e305ed9528 100644 --- a/s/primdata.ss +++ b/s/primdata.ss @@ -195,7 +195,7 @@ (exact? [sig [(number) -> (boolean)]] [flags pure mifoldable discard safeongoodargs ieee r5rs]) (inexact? [sig [(number) -> (boolean)]] [flags pure mifoldable discard safeongoodargs ieee r5rs]) (inexact [sig [(number) -> (inexact-number)]] [flags arith-op mifoldable discard safeongoodargs]) - (exact [sig [(number) -> (exact-number)]] [flags arith-op mifoldable discard safeongoodargs]) + (exact [sig [(number) -> (exact-number)]] [flags arith-op mifoldable discard]) ; no safeongoodargs because it fails with +inf.0 ((r6rs: <) [sig [(real real real ...) -> (boolean)]] [flags pure mifoldable discard safeongoodargs ieee r5rs]) ; restricted to 2+ arguments ((r6rs: <=) [sig [(real real real ...) -> (boolean)]] [flags pure mifoldable discard safeongoodargs ieee r5rs]) ; restricted to 2+ arguments ((r6rs: =) [sig [(number number number ...) -> (boolean)]] [flags pure mifoldable discard safeongoodargs ieee r5rs]) ; restricted to 2+ arguments @@ -730,7 +730,7 @@ (define-symbol-flags* ([libraries (rnrs r5rs)] [flags primitive proc]) (exact->inexact [sig [(number) -> (inexact-number)]] [flags arith-op mifoldable discard safeongoodargs ieee r5rs]) - (inexact->exact [sig [(number) -> (exact-number)]] [flags arith-op mifoldable discard safeongoodargs ieee r5rs]) + (inexact->exact [sig [(number) -> (exact-number)]] [flags arith-op mifoldable discard ieee r5rs]) ; no safeongoodargs because it fails with +inf.0 (quotient [sig [(number number) -> (number)]] [flags arith-op mifoldable discard ieee r5rs]) (remainder [sig [(number number) -> (number)]] [flags arith-op mifoldable discard ieee r5rs]) (modulo [sig [(number number) -> (number)]] [flags arith-op mifoldable discard ieee r5rs])