[Vm-dev] unresponsive 64-bit Spur StackInterpreter, except...

Eliot Miranda eliot.miranda at gmail.com
Tue Jul 14 19:06:50 UTC 2015


Hi David,

On Mon, Jul 13, 2015 at 7:02 PM, David T. Lewis <lewis at mail.msen.com> wrote:

>
> On Mon, Jul 13, 2015 at 05:11:29PM -0700, Eliot Miranda wrote:
> >
> > Hi All,
> >
> >      I've a bit of a mystery and could do with suggestions of what to
> look
> > for.  The 64-bit Spur StackInterpreter VM on linux was working fine up
> > until a few months ago.  Now it doesn't respond to input, unless that
> is, I
> > put various breakpoints on various functions along the chain from aioPool
> > through to allocateInputEvent to signalExternalSemaphore to
> > doSignalExternalSemaphores when ... it can suddenly start working?!  I'm
> > planning to add a -debugeventchain flag or some such and if set write a
> > different character to stderr form each function along the chain so I can
> > see where the blockage is, but I fear heisenbugs; doing output could
> > perturb the system into working (given that gdb can perturb the system
> > also).  And I'm lazy so I wondered if anyone had a good idea.  I've
> thought
> > of it being thread-related but that's not the case as all event
> processing
> > in X11 happens on the main VM thread.  Anyway, I'm open to suggestions.
>
> This is almost certainly unhelpful, but IIRC the data structures that
> represent input events are generated primarily from slang, hence dependent
> on sizeof(sqInt), but some of the platform sources (Mac OS tree, maybe
> elsewhere) are written in C with 32 bit assumptions. The 64-bit image
> (format 68002) that I have been using for the last 6 months or so does
> indeed seem to have problems with input event processing. I need to wiggle
> the mouse from time to time when doing e.g. a trunk update. I suspect
> (but have not confirmed) that this may be some kind of problem related
> to the input event data structures.
>

Brilliant!  You're absolutely right on the money.  All of the event
structures in  sq.h use ints for their fields, except sqComplexEvent which
uses sqInt for one field, which causes it to mismatch al the others.  A
straight-forward change to the use of long (grrr, should have used that in
the first place) causes the VM to crash on the first event, so we're
getting there.  Thanks!


> So FWIW: Has anything changed in the C code generator and/or support
> code in the last few months that might affect the data structures that
> represent events passed from the VM to the image?
>
> Dave
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150714/a14af7a5/attachment-0001.htm


More information about the Vm-dev mailing list