[Vm-dev] a problem with JIT and become:

Eliot Miranda eliot.miranda at gmail.com
Wed Feb 20 18:36:06 UTC 2013


Thanks, Esteban.  This reproduces nicely and looks to be similar to a
bug I was suffering from myself this week but was much harder to
reproduce.

P.S.  To reproduce this I evaluated the following in a workspace and
then started foo.image:

Smalltalk saveAsL 'foo'.
(Delay class>>#handleTimerEvent) setSourcePosition: 200 inFile: 1.
(ProcessorScheduler class>>#idleProcess) setSourcePosition: 200 inFile: 1

On Wed, Feb 20, 2013 at 8:21 AM, Esteban Lorenzano <estebanlm at gmail.com> wrote:
>
> Hi,
>
> Ok, I tried this code:
>
> (Delay class>>#handleTimerEvent) setSourcePosition: 200 inFile: 1.
> (ProcessorScheduler class>>#idleProcess) setSourcePosition: 200 inFile: 1
>
> in latest pharo image: http://pharo.gforge.inria.fr/ci/image/20/20560.zip
>
> and it crashes the vm
>
> (tried in mac vm, with latest cog from Eliot)
>
> this does not happens in squeak because squeak uses another algorithm... but placing same method source in squeak crashes it too.
>
> I suspected it was because something in the JIT becomes dizzy, so  I "workarounded" the problem by adding a call voidVMStateForSnapshot before each become (it was just an experiment, don't kill me). Weird is that it solved the problem... of course, this is not usable because then  other places get stuck (like ByteString>>#at:put:), but I think it is showing a problem... isn't?
>
> cheers,
> Esteban



-- 
best,
Eliot


More information about the Vm-dev mailing list