[squeak-dev] Magma (head) now runs in the 64-bit image

Chris Muller ma.chris.m at gmail.com
Sun Dec 18 00:17:23 UTC 2016


"MagmaTestCase suite debug" just passed in the 64-bit image!  Wow,
that was a lot easier than I thought.  The only compatibility issue
turned out to be the new range of SmallInteger now extending out to 60
bits instead of only 30.

A 64-bit image can read all LargeInteger buffers created in 32-bit
environments valued between the legacyMaxVal and the new 60-bit just
fine.  However, It must serialize SmallIntegers larger than
legacyMaxVal as LargeIntegers, because Magma's oid space is only 48
bits.

With these overrides in SmallInteger, legacy Magma applications can
now run in a heterogeneous environment of 32 and 64-bit images and
VMs.  VM installation onto 64-bit OS's will no longer require the
complicated installation of the 32-bit libraries, a big gain for
users!

Back when Squeak only had the interpreter VM, Magma actually had a
64-bit oid space, but it was too early, it proved to be bigger than
necessary for the speed of that time, so I cut it to 48 bits.   :-\

48 bits is still big enough for huge databases, but starting to feel
limiting in the 64-bit environment especially now that the 64-bit
image has optimized double-precision floats, as well..!

So many projects.  I wish a brilliant PhD student would design Magma a
new optimal "magma64" oid-space!

 - Chris


More information about the Squeak-dev mailing list