[elephant-devel] 64-bit support
Ian Eslick
eslick at csail.mit.edu
Thu Feb 1 04:27:14 UTC 2007
With help from Henrik Hjelte, I'm implemented preliminary 64-bit
support for Elephant 0.6.1
Features and notes:
- 64-bit fixnums are read and written natively for 64-bit lisps
- 32-bit systems can recognize and read 64-bit fixnums as bignums
- 64-bit systems can read 32-bit fixnum quantities
- I've slowed down array writing slightly by allowing arrays with
dimensions > 2^32
- Persistent Object OIDs are still 32-bit on both platforms for
efficiency reasons, this may change if 64-bit lisps become the
dominant user platform
There are some issues with mixing lisps at present that need fixing.
- Big endian machines where 32-bit lisps read 64-bit serialized fixnums
- Potential sign extension issue on 64-bit lisps reading 32-bit fixnums
- I have not tested Henrik's SBCL support for reading/writing 64-bit
entities
- Storage efficiency hack by storing 64-bit fixnums < 2^32 in 4 bytes
instead of 8
If anyone wants to give this a test drive, I'm sure there are other
bugs to be discovered. I'll be adding some regression tests tomorrow
to validate the 32/64 bit interoperability.
Regards,
Ian
More information about the elephant-devel
mailing list