FIXNUM Size

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.