[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