<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Hi Dave.<div><br></div><div>> ... <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"> </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">but I think </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">that we should first look at how we might handle this better in the </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">image ...</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">To some extent, this will be the good'ol discussion about how to achieve cross-platform compatibility. Whose job is it? VM? Image? Both? Do we want to have "platformName = 'Win32'" (or similar) checks in the image? Or can we rely on platform-independent information coming from the VM?</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Well, thinking about maybe the future role of FFI for Squeak, we may not want to change too much in the VM at this point. A minimal-effort approach with in-image change might be the right thing to do. :-)</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><div class="mb_sig"></div>
                                        
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 15.09.2020 17:04:18 schrieb David T. Lewis <lewis@mail.msen.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">I do not have any specific solution or approach in mind, but I think<br>that we should first look at how we might handle this better in the<br>image. The Windows VM is not doing anything wrong, on the contrary I<br>think that its policy of using native MSG timestamps feels like the<br>right thing to do.<br><br>It seems to me that the problem is our assumption that event timestamps<br>should match the millisecond clock in the VM. Certainly that can<br>be made to work, but seems to me like fixing the wrong problem.<br><br>Time class>>eventMillisecondClock is a recent addition. Maybe we<br>can find another way to synthesize event time stamps in the image.<br><br>Dave<br><br><br>On Tue, Sep 15, 2020 at 04:32:59PM +0200, Marcel Taeumel wrote:<br>> Hi all.<br>> <br>> Here is a quick thought: It should be possible to synthesize events from within the image to then use those synthesized events along with regular events. Think about testing, mouse over etc. Thus, either #eventMillisecondClock should be platform-specific, or all event timestamps that come from the VM should be similar ... which means that the Windows VM code needs to be changed to not use the MSG structure but ioMSecs.<br>> <br>> Best,<br>> Marcel<br>> Am 12.09.2020 21:58:50 schrieb David T. Lewis <lewis@mail.msen.com>:<br>> Thanks Tim,<br>> <br>> I've been digging through version control history, and I think what<br>> I see is that the assumption of prim 94 matching prim 135 was valid<br>> through the life of the interpreter VM (squeakvm.org SVN sources) but<br>> that it had changed for Windows as of the public release of Cog.<br>> <br>> I don't see anything wrong with the Windows VM implementation (aside<br>> from the one bug that Christoph fixed), instead I think we may just<br>> be dealing with a holdover assumption that is no longer valid.<br>> <br>> I'm inclined to think we should see if we can make the prim 135<br>> dependence go away in the image. Some other way of synthesizing event<br>> time stamps maybe?<br>> <br>> Dave<br>> <br>> On Fri, Sep 11, 2020 at 03:45:35PM -0700, tim Rowledge wrote:<br>> > I think the key thing is that the answers from the primitive 135 must be aligned with the tick values obtained from primitive 94.<br>> ><br>> > Of course if prim 94 is properly functional (all elements of the event array are correctly filled in) then prim 135 should never be needed; it was created for those machines that waaaaay back when I added the input events still couldn't provide such data. I'm not entirely sure there actually were any....<br>> ><br>> > The only usage of prim 135 not related directly to events seems to be SmalltalkImage>>#vmStatisticsReportOn:, though there are several methods that looks a bit iffy.<br>> ><br>> > EventSensor>>#createMouseEvent is only used in a couple of places to do with rectangle transforming interactively, and probably ought to be improved.<br>> > EventSensor>>#nextEventSynthesized is only used if the EventSensor has no event queue and that is ... a bit complex but probably should never happen since we removed the old InputSensor years and years ago.<br>> > EventSensor>>#primGetNextEvent: - since we declare the prim essential maybe we should drop the fake-it code and really insist on the prim being there?<br>> > MorphicEvent>>#timeStamp looks like a probably redundant backup?<br>> > MouseEvent>>#asMouseMove looks like the new MouseMoveEvent ought to copy the time stamp from the receiver?<br>> ><br>> ><br>> ><br>> > tim<br>> > --<br>> > tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim<br>> > There are no stupid questions. But, there are a lot of inquisitive idiots.<br>> ><br>> ><br>> ><br>> <br><br>> <br><br><br></lewis@mail.msen.com></div></blockquote></div>