Currently FIXNUMs are set to fit 32-bit CPUs.
For 64-bit CPUs (AMD, etc) will a FIXNUMs scale to
fit 64-bit registers, or remain the same.
Currently FIXNUMs are set to fit 32-bit CPUs.
For 64-bit CPUs (AMD, etc) will a FIXNUMs scale to
fit 64-bit registers, or remain the same.
They scale, see ruby.h for more details but here are some of the relevant parts:
#if SIZEOF_LONG != SIZEOF_VOIDP
# error ---->> ruby requires sizeof(void*) == sizeof(long) to be compiled. <<----
#endif
typedef unsigned long VALUE;
/* ...snip ... */
#define FIXNUM_MAX (LONG_MAX>>1)
/* ...snip ... */
#define INT2FIX(i) ((VALUE)(((long)(i))<<1 | FIXNUM_FLAG))
#define LONG2FIX(i) INT2FIX(i)
-Charlie
On Jul 24, 2004, at 12:11 PM, Jabari Zakiya wrote:
Currently FIXNUMs are set to fit 32-bit CPUs.
For 64-bit CPUs (AMD, etc) will a FIXNUMs scale to
fit 64-bit registers, or remain the same.