Skip to content

Commit 6b08872

Browse files
committed
fix fixnum-width, etc., for RacketCS
1 parent 47cb0d4 commit 6b08872

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

r6rs-lib/rnrs/arithmetic/fixnums-6.rkt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,20 @@
2222
fxreverse-bit-field)
2323
;; Many other provides from macros below
2424

25+
(define CS? (eq? 'chez-scheme (system-type 'vm)))
2526
(define 64-bit? (fixnum? (expt 2 33)))
2627

27-
(define (fixnum-width) (if 64-bit? 63 31))
28-
(define (least-fixnum) (if 64-bit? (- (expt 2 62)) -1073741824))
29-
(define (greatest-fixnum) (if 64-bit? (- (expt 2 62) 1) +1073741823))
28+
;; These would be better provided by Racket, instead of hardwiring
29+
;; numbers based on `system-type` results...
30+
(define (fixnum-width) (if CS?
31+
(if 64-bit? 61 30)
32+
(if 64-bit? 63 31)))
33+
(define (least-fixnum) (if CS?
34+
(if 64-bit? (- (expt 2 60)) -536870912)
35+
(if 64-bit? (- (expt 2 62)) -1073741824)))
36+
(define (greatest-fixnum) (if CS?
37+
(if 64-bit? (- (expt 2 60) 1) +536870911)
38+
(if 64-bit? (- (expt 2 62) 1) +1073741823)))
3039

3140
(define-syntax-rule (check v alt)
3241
(if (fixnum? v)

0 commit comments

Comments
 (0)