[Vm-dev] New Cog VMs available

Eliot Miranda eliot.miranda at gmail.com
Sat Mar 12 01:39:56 UTC 2016

Hi David,

> On Mar 11, 2016, at 4:36 PM, David T. Lewis <lewis at mail.msen.com> wrote:
>> 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.

It was my first instinct, thinking that not many people are using 64-bits yet, but off-list Leve ye and I were discussing and I asked what he thought.  I decided to follow his advice.  In the end it's better.  You scheme does work and I really do think this will be the last change to the 63-bit format fir a while.  We still have of the order of 1000 unused version numbers so there's no pressing need to avoid rolling.

If I hadn't changed the version number the symptom would have been infinite recursion, which can be a frustrated belt slow way to find out one has the wrong version.  At least this way it's clear.

> Dave

_,,,^..^,,,_ (phone)

More information about the Vm-dev mailing list