[Vm-dev] mantis http://bugs.squeak.org/view.php?id=7349

Bert Freudenberg bert at freudenbergs.de
Wed May 6 10:34:27 UTC 2009


On 06.05.2009, at 02:36, David T. Lewis wrote:

>
> On Tue, May 05, 2009 at 11:37:43AM -0700, John M McIntosh wrote:
>>
>> Folks should try the fix and see
>>
>> Ihttp://idisk.mac.com/bertfreudenberg-Public/temp
>>
>> Double-click EtoysToGo.app and drop in wendy.pr  for it to explode,
>> well or not after the fix is applied.
>
> I did not try the exploding wendy.pr test,

Well what I uploaded there is just our not-yet-finished "Etoys To Go"  
project that's supposed to be runnable from an USB flash drive, on any  
platform. The VMs for Win and Linux there are not yet updated. Etoys  
actually does not need closure support (yet) but a feature to resolve  
relative directories (so the user data will also land on the flash  
drive). John put that feature in his 4.0 series which supports  
closures, so I needed to use that one. And then I noticed it blows up  
on entering sandbox mode.

> but your ClosureVMPopKiller-M7349
> definitely fixes some stack balance bugs, so I loaded it in the  
> VMMaker project
> on SqS in VMMaker-dtl.122.
>
> The Mantis 7349 issue is marked as status "testing" since I did not  
> actually
> perform the wendy.pr test. I'll move it to "resolved" next week if  
> no one cites
> evidence to the contrary.
>
> r.e. your notes in Mantis 7349:
>> was there not some recovery code for unbalanced stacks somewhere? My
>> concern is there other example of this which we not yet crashed over.
>> So how would we fix the VM to avoid? Or do we need to check all the  
>> plugin
>> prim code for coding issues.
>
> Yes there are sure to be more unbalanced stack bugs, and yes  
> somebody should
> probably check all the plugin code. Most likely nobody will get  
> around to doing
> that but no worries, the stack VM seems to do an excellent job of  
> finding
> these bugs :)


How costly would it be to always do this:

	interpreterProxy pop: interpreterProxy methodArgumentCount + 1  
thenPush: result

or

	interpreterProxy pop: interpreterProxy methodArgumentCount

to return self?


- Bert -




More information about the Vm-dev mailing list