[Vm-dev] Problem restarting contexts in Cog 2341

Eliot Miranda eliot.miranda at gmail.com
Sat Jan 8 02:15:52 UTC 2011


Hi All,

    find new VMs in
VM.r2342/<http://www.mirandabanda.org/files/Cog/VM/VM.r2342/>
(SimpleStackBasedCogit)
and VM.r2343/ <http://www.mirandabanda.org/files/Cog/VM/VM.r2343/> (
StackToRegisterMappingCogit).  2343 seems fine but I appear to have
introduced a regression into 2342.  The 2343 VMs fix both of the bugs
mentioned by Matthew and Yoshiki:

This now evaluates to nil as intended:
| a | a := false. [a ifFalse: [Error signal]] on: Error do: [:ex | a :=
true. ex retry]

This no longer provokes a must-be-boolean error:
BooleanArrayUser new loop1

As usual I'm very grateful for you pounding on these (ok, at least the 2343
VM :) ).

best
Eliot

On Fri, Jan 7, 2011 at 10:10 AM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

> Hi Matthew, Hi Yoshiki,
>
>
>    thanks very much for this.  I have a fix which I should be able to roll
> out this evening or tomorrow.  The problem was that the run-time code that
> assigns inst vars of contexts was not preserving the register holding the
> receiver although the code generator thought it was.  So in
> MethodContext>>#privRefresh a subsequent reference to a context inst var
> failed because the register assumed to be holding the context got trashed.
>  There was another bug which caused the code generator's "simulation stack"
> (its main optimization data structure) to be off by one for context inst var
> assigns.  Hopefully these two fixes will fix Yoshiki's bug also.  Yoskhiki,
> do you have a more reliable way of reproducing that bug?
>
> best
> Eliot
>
> On Thu, Jan 6, 2011 at 6:40 PM, Matthew Fulmer <tapplek at gmail.com> wrote:
>
>>
>> On Thu, Jan 06, 2011 at 09:27:14PM -0500, Matthew Fulmer wrote:
>> >
>> > In Cog release 2341, as distributed at
>> > http://www.mirandabanda.org/files/Cog/VM/VM.r2341/
>> >
>> > this causes an MNU. It should evaluate to true:
>> >
>> > | a | a := false. [a ifFalse: [Error signal]] on: Error do: [:ex | a :=
>> true. ex retry]
>>
>> actually it should evaluate to nil
>>
>> --
>> Matthew Fulmer (a.k.a. Tapple)
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110107/d6cd46c5/attachment.htm


More information about the Vm-dev mailing list