This is the range of fixnums in bits for the 32-bit builds of 39 Schemes.
For this purpose, an exact integer n is a fixnum if n satisfies
the implementation's fixnum? procedure (marked by an dagger)
or if there is no such procedure, then if (eq? n n) returns #t.
| Bits | Schemes |
|---|---|
| 31 bits | Racket†, Chicken†, Ypsilon†, Elk |
| 30 bits | Gambit† , Scheme48/scsh, Guile, Chibi†, Chez†, SCM, Ikarus†/Vicare†, Larceny†, Ypsilon†, Mosh†, IronScheme† (but see below), STklos†, RScheme†, Oaklisp† |
| 29 bits | Gauche†, Bigloo†, SigScheme |
| 26 bits | MIT† |
| 16 bits | Owl Lisp† |
| 9 bits | S7 |
No fixnums (even (eq? 0 0) is #f) |
SISC, KSi, TinyScheme, Scheme 9, Dream, BDC, UMB |
| Apparently unbounded fixnums | Shoe, Schemik, VX |
| Answer not easily determined | NexJ, XLisp, rep |
In Kawa and IronScheme all exact integers are boxed, but a short range is preallocated, so that eq? is satisfied: -100 to 1024 for Kawa, -100 to 999 for IronScheme.
These were computed using later versions of many of the above Schemes, so they are not necessarily directly comparable. However, fixnums tend to be a rather stable part of any Scheme implementation.
| Bits | Schemes |
|---|---|
| 62 bits | Racket†, Chicken†, Ypsilon† |
| 61 bits | Gauche†, Gambit†, Scheme48/scsh, Guile, Chibi†, SCM, STklos†, Sagittarius† |
| 60 bits | Chez, Vicare† |
| 59 bits | !SigScheme |
| 56 bits | MIT† |
| 31 bits | Elk, IronScheme† (but see above) |
| 29 bits | Larceny†, Mosh†, RScheme† |
| 16 bits | Owl Lisp† |
| 11 bits | S7 |
| 8 bits | BDC |
No fixnums (even (eq? 0 0) is #f) |
SISC, KSi, TinyScheme, Scheme 9, BDC |
| Apparently unbounded fixnums | Shoe, Schemik, NexJ |
| Answer not easily determined | Bigloo†, UMB, XLisp, rep |