<div dir="ltr">Hi David,<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 13, 2015 at 7:02 PM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
On Mon, Jul 13, 2015 at 05:11:29PM -0700, Eliot Miranda wrote:<br>
&gt;<br>
&gt; Hi All,<br>
&gt;<br>
&gt;      I&#39;ve a bit of a mystery and could do with suggestions of what to look<br>
&gt; for.  The 64-bit Spur StackInterpreter VM on linux was working fine up<br>
&gt; until a few months ago.  Now it doesn&#39;t respond to input, unless that is, I<br>
&gt; put various breakpoints on various functions along the chain from aioPool<br>
&gt; through to allocateInputEvent to signalExternalSemaphore to<br>
&gt; doSignalExternalSemaphores when ... it can suddenly start working?!  I&#39;m<br>
&gt; planning to add a -debugeventchain flag or some such and if set write a<br>
&gt; different character to stderr form each function along the chain so I can<br>
&gt; see where the blockage is, but I fear heisenbugs; doing output could<br>
&gt; perturb the system into working (given that gdb can perturb the system<br>
&gt; also).  And I&#39;m lazy so I wondered if anyone had a good idea.  I&#39;ve thought<br>
&gt; of it being thread-related but that&#39;s not the case as all event processing<br>
&gt; in X11 happens on the main VM thread.  Anyway, I&#39;m open to suggestions.<br>
<br>
</span>This is almost certainly unhelpful, but IIRC the data structures that<br>
represent input events are generated primarily from slang, hence dependent<br>
on sizeof(sqInt), but some of the platform sources (Mac OS tree, maybe<br>
elsewhere) are written in C with 32 bit assumptions. The 64-bit image<br>
(format 68002) that I have been using for the last 6 months or so does<br>
indeed seem to have problems with input event processing. I need to wiggle<br>
the mouse from time to time when doing e.g. a trunk update. I suspect<br>
(but have not confirmed) that this may be some kind of problem related<br>
to the input event data structures.<br></blockquote><div><br></div><div>Brilliant!  You&#39;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&#39;re getting there.  Thanks!</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
So FWIW: Has anything changed in the C code generator and/or support<br>
code in the last few months that might affect the data structures that<br>
represent events passed from the VM to the image?<br>
<br>
Dave<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>