[Vm-dev] New Cog VMs available...

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Wed Jan 9 21:20:45 UTC 2013

2013/1/9 Frank Shearar <frank.shearar at gmail.com>:
> On 9 January 2013 02:38, David T. Lewis <lewis at mail.msen.com> wrote:
>> On Tue, Jan 08, 2013 at 09:17:52PM -0500, David T. Lewis wrote:
>>> On Wed, Jan 09, 2013 at 02:28:58AM +0100, Nicolas Cellier wrote:
>>> >
>>> > Great, but now everybody could see my bug if she tries to connect
>>> > primitive 20...
>>> >
>>> > http://code.google.com/p/cog/issues/detail?id=117
>>> Your fix from http://code.google.com/p/cog/issues/detail?id=117 is in
>>> VMMaker-dtl.296 for the interpreter VM.
>> And I note for the record that Eliot and I applied your patch to the two
>> VMM branches simultaneously within a two minute time window. How's that
>> for some good teamwork?
>> :)
>> Dave
> It's not all bad news:
> http://squeakci.org/job/SqueakTrunk/116/testReport/ shows Nicolas' new
> primitives working on Cog r.2664!
> frank

Ah, yes, but the short-lived bug can only show up when using a certain
conjunction of VM and image
- old VM are OK, primitive 20 does primitiveFail
- new VM are OK, bug corrected
- only the interim VM (COG 2662 and classical 4.10.9) can cause a bug,
but only if image would be using <primitive: 20>
Until now, trunk image doesn't, this change is still in the inbox, so
I'm quite sure CI is safe.

Anyway, if we push inbox change in trunk, and some unlucky guy use the
wrong VM, #rem: would be false only if
- dividand is a large integer with magnitude fitting in 64 bits,
- and result is different from zero
- and divider is a negative, small or large integer, with magnitude
fitting in 64 bits too.

Since rem: is used principally in Fraction arithmetic (but more than
often the divider is positive), and some dateAndTime handling (case of
negative divider does not seem the usual case neither), seeing a
consequence of the bug would be a great case of bad luck !

So I think we can soon proceed with the change :)


More information about the Vm-dev mailing list