Magma (head) now runs in the 64-bit image

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Magma (head) now runs in the 64-bit image

Chris Muller-4
"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

Reply | Threaded
Open this post in threaded view
|

Re: Magma (head) now runs in the 64-bit image

David T. Lewis
On Sat, Dec 17, 2016 at 06:17:23PM -0600, Chris Muller wrote:
> "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.

Bravo!

Dave