diff --git a/racket/src/ChezScheme/mats/date.ms b/racket/src/ChezScheme/mats/date.ms index 72c2f464f2..c8780222dd 100644 --- a/racket/src/ChezScheme/mats/date.ms +++ b/racket/src/ChezScheme/mats/date.ms @@ -506,6 +506,10 @@ (and (date? $date-d5) (not (time? $date-d5)))) (date? (make-date 0 0 0 0 1 1 1970 -24)) (date? (make-date 999999999 59 59 23 31 12 2007 24)) + (begin + (define $date-d8 (make-date 999999999 59 59 23 31 12 2007 24)) + #t) + (not (fixnum? (date-nanosecond $date-d8))) (eqv? (date-nanosecond $date-d1) 1) (eqv? (date-second $date-d1) 2) (eqv? (date-minute $date-d1) 3) diff --git a/racket/src/ChezScheme/s/primdata.ss b/racket/src/ChezScheme/s/primdata.ss index 28435fcf6d..628c89f161 100644 --- a/racket/src/ChezScheme/s/primdata.ss +++ b/racket/src/ChezScheme/s/primdata.ss @@ -860,7 +860,7 @@ (date-hour [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) (date-minute [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) (date-month [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) - (date-nanosecond [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) + (date-nanosecond [sig [(date) -> (uint)]] [flags pure mifoldable discard true]) (date-second [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) (date-week-day [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) (date-year-day [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) @@ -869,8 +869,8 @@ (date-zone-offset [sig [(date) -> (fixnum)]] [flags pure mifoldable discard true]) (date-zone-name [sig [(date) -> (ptr)]] [flags pure mifoldable discard]) (date->time-utc [sig [(date) -> (time-utc)]] [flags alloc]) - (make-date [sig [(sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum) -> (date)] - [(sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-fixnum) -> (date)]] + (make-date [sig [(sub-uint sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum) -> (date)] + [(sub-uint sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-ufixnum sub-fixnum) -> (date)]] [flags alloc]) (make-time [sig [(sub-symbol sub-uint exact-integer) -> (time)]] [flags alloc]) (set-time-nanosecond! [sig [(time sub-uint) -> (void)]] [flags true])