<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        > <span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Since this is called only once to fourteen times per frame (see DamageRecorder) ...</span><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Sorry for that slip. The role of DamageRecorder comes into play only *after* the error handler. So this is only called once per frame.</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Best,</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">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;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 29.10.2019 15:07:42 schrieb Marcel Taeumel <marcel.taeumel@hpi.de>:</p><div style="font-family:Arial,Helvetica,sans-serif"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Hi Christoph.<div><br></div><div>> <span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt">However, currently, a #deprecated call in a drawing method makes the image unusable ...</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt">Yes, there is a lot of room for improvement in Squeak's strategy to keep the image alive and in a recoverable state. Annoying things include errors in event handlers (such as #mouseOver:) and the thing about Warnings you mentioned for #displayWorldSafely.</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt">Since the exception mechanism can be used to implement dynamic scope (see </span><span style="font-family: Calibri, Helvetica, sans-serif"><span style="font-size: 16px">CurrentReadOnlySourceFiles), we should never catch Exception in general to install such handlers.</span></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt">Warning might be a nice addition to #displayWorldSafely.</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt"><br></span></div><div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif"><span style="font-size: 16px"><span style="white-space: pre;">  </span>[Error] bench '219,000,000 per second. 4.57 nanoseconds per run.'</span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif"><span style="font-size: 16px"><span style="white-space:pre">        </span>[Error, Halt] bench '11,900,000 per second. 84.4 nanoseconds per run.'</span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif"><span style="font-size: 16px"><span style="white-space: pre;"> </span>[Error, Halt, Warning] bench '9,910,000 per second. 101 nanoseconds per run.'</span></span></div></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif"><span style="font-size: 16px"><br></span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif"><span style="font-size: 16px">Since this is called only once to fourteen times per frame (see DamageRecorder) -- but usually only once -- we are good with 100 nanoseconds, given that 60 frames-per-second translate to 16 666 667 nanoseconds per frame.</span></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt">Best,</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 12pt">Marcel</span></div><div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;font-family: Calibri, Helvetica, sans-serif"><div id="Signature"><div name="divtagdefaultwrapper" style="font-family: Calibri, Arial, Helvetica, sans-serif; margin: 0px;"><span style="font-size: 10pt;color: #808080"></span></div></div></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 25.10.2019 20:46:52 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<p>I see, but isn't it just their existence what we want to test for to prevent from loads of Debuggers appearing?</p>
<p>Or should we go the other way around and signal a "DebuggerRaisedNotification" each time before opening a debugger?</p>
<p><br>
</p>
<p>However, currently, a #deprecated call in a drawing method makes the image unusable ...</p>
<div id="Signature">
<div name="divtagdefaultwrapper" style="font-family: Calibri,Arial,Helvetica,sans-serif;font-size: ;margin: 0">
<div><span style="font-size: 10pt;color: #808080"></span></div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Mittwoch, 23. Oktober 2019 15:48:15<br>
<b>An:</b> John Pfersich via Squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Trunk: System-mt.1093.mcz</span>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
> <span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Why isn't it sufficient to test for UnhandledError instead? Otherwise, we would also need to test for Warning etc. ...</span>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">UnhandledError and UnhandledWarning are (private) implementation details of Squeak's exception handling mechanism. They should never be exposed to (or used by) applications/frameworks.</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Best,</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">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 22.10.2019 18:50:59 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p>
<div style="font-family:Arial,Helvetica,sans-serif"><style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<p>Why isn't it sufficient to test for UnhandledError instead? Otherwise, we would also need to test for Warning etc. ...</p>
<div id="Signature">
<div name="divtagdefaultwrapper" style="font-family: Calibri,Arial,Helvetica,sans-serif;font-size: ;margin: 0">
<div><span style="font-size: 10pt;color: #808080"></span></div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Dienstag, 15. Oktober 2019 13:18:26<br>
<b>An:</b> gettimothy via Squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Trunk: System-mt.1093.mcz</span>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
Yeah, I wonder whether we should expand "Error" to "Error, Halt"?
<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;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 15.10.2019 12:45:42 schrieb Balázs Kósi <rebmekop@gmail.com>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<div dir="ltr">
<div>Hi Hannes!</div>
<div><br>
</div>
<div>This morning I've just run into this exact same situation: putting a halt into a method, called by a morph's #drawOn:</div>
<div>makes the image unusable.<br>
</div>
<div><br>
</div>
<div>The problem stems from WorldState >> displayWorldSafely: being safe only for Errors and not for other kind of</div>
<div>Exceptions, and Halt being only an Exception not an Error.<br>
</div>
<div><br>
</div>
<div>For a quick fix add Halt to the handled exceptions in #displayWorldSafely:</div>
<div>[aWorld displayWorld. finished := true] on: Error, Halt do: [:ex |</div>
<div></div>
<div>Balázs<br>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div></blockquote></div></div></blockquote>
                                        </div></body>