[Vm-dev] New Cog VMs available

David T. Lewis lewis at mail.msen.com
Sat Mar 12 00:36:23 UTC 2016

On Fri, Mar 11, 2016 at 11:05:03AM -0800, Eliot Miranda wrote:
> Spur:
> Resolve the conflict between 32-bit and 64-bit tag assignments.  In 32-bits we
> have 1=even SmallIntegers, 2=Characters, 3=odd SmallIntegers, and in 64-bits we
> had 1=SmallIntegers, 2=Characters, 3=SmallFloats.  Hence we would want
> SmallFloat64's identityHash to be 3, which conflicts with 32 bits' odd
> SmallIntegers.  Change is for 64-bits to use 1=SmallIntegers, 2=Characters,
> 4=SmallFloats.  This also means single-bit tests in the Cogit, which produces
> better code, and no scratch registers to hold masked tags.
> Hence roll the 64-bit Spur image format version number from 68019 to 68021.
> Delegate to the object memories to determine the image format version
> number.

Hi Eliot,

I wonder if it may be possible to retain the original 69019 image format
number? The reason for my question is that I am looking at updating class
ImageFormat to document the change, and it gets a bit hacky looking, so
if it was possible to stick with 68019 at this point that would be convenient
from the point of view of documenting the image formats.

I'm not trying to advocate one way or the other, I just want to ask the
question in case it is an easy thing to do from your point of view.


More information about the Vm-dev mailing list