<div id="__MailbirdStyleContent" style="font-size: medium;font-family: Calibri;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Hi Eliot,<div><br></div><div>thank you for this comprehensive answer. Sure, I just CC'ed vm-dev.</div><div><br></div><div>No concrete example/worries. I am just brainstorming about the general possibilities/limitations of user interfaces (and application frameworks) in Squeak. :-)</div><div><br></div><div>Best,</div><div>Marcel</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;">
                                       <p style="color: #AAAAAA; margin-top: 10px;">Am 05.04.2016 08:33:57 schrieb Eliot Miranda &lt;eliot.miranda@gmail.com&gt;:</p><div>Hi Marcel,<br><br></div><div><br>On Apr 4, 2016, at 6:24 AM, Marcel Taeumel &lt;<a href="mailto:marcel.taeumel@hpi.de">marcel.taeumel@hpi.de</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div id="__MailbirdStyleContent" style="font-size: medium;font-family: Calibri;color: #000000">Hi Eliot,<div class="mb_sig"></div><div><br></div><div>is it still (roughly) at the granularity of message sends where processes will be interrupted?</div></div></div></blockquote><div><br></div>The suspension points are<div>- the first bytecode in a non-primitive method</div><div>- the first bytecode in a primitive method (after the callPrimitive bytecode) if the primitive fails</div><div>- a backward branch</div><div>- the first bytecode of a block (unless invoked with valueNoContextSwitch[:]</div><div><br></div><div>That is a maximal set of suspension points. &nbsp;If the JIT can compile a method or block without needing a frame (because the code is simple, eg doesn't do a send) then there will be no suspension point in that method when jitted.</div><div><br><blockquote type="cite"><div id="__MailbirdStyleContent" style="font-size: medium;font-family: Calibri;color: #000000"><div>Hence, the worst that can happen is that Squeak's debugger shows up and complains about some DNU based on corrupted state? (Or that the app runs a while until some debugger shows up...)</div></div></blockquote><div><br></div>The potential failures are</div><div>- MNU</div><div>- mustBeBoolean</div><div>- cannotReturn:</div><div>- cannotResume:</div><div>- illegalBytecodeAt:</div><div>and with read-only object support</div><div>- attemptToAssign:withIndex:</div><div><br><blockquote type="cite"><div id="__MailbirdStyleContent" style="font-size: medium;font-family: Calibri;color: #000000"><div>Meaning: The VM will <b>never crash</b> by bad multi-programming?</div></div></blockquote><div><br></div>Hmmm. &nbsp;Not sure whether that's true because one could possibly create synthetic examples that crash the VM and then try and provoke these by "bad multi-programming". &nbsp;But I think you're right. &nbsp;The VM doesn't suspend at arbitrary points.</div><div><br></div><div>But perhaps you could express what you're worried about. &nbsp;Any examples?</div><div><br></div><div>And this is a discussion we could have on vm-dev...no?</div><div><br><blockquote type="cite"><div id="__MailbirdStyleContent" style="font-size: medium;font-family: Calibri;color: #000000"><div>Best,</div><div>Marcel</div></div></blockquote><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">Best,</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">Eliot<br>_,,,^..^,,,_ (phone)</span></div></div>
                                       </blockquote>
                                        
                                        </div>