<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<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>Hi Lauren,</p>
<p><br>
</p>
<p>Squeak Exceptions have a resumption mechanism. See Exception>>#resume:, or ProvideAnswerNotification and <span>BlockClosure>>#valueSupplyingAnswers: for a common example.</span></p>
<p><span><br>
</span></p>
<p><span>There is no UI integration for this, yet. However, this idea already has been mentioned on the list earlier, this would definitely be a sweet feature. Note that for #<span>notYetImplemented, #doesNotUnderstand:, et al., the debugger already defines
 a variable button. See senders of #<span>createImplementingMethod. However, this mechanism has not yet been generalized, i.e., by dispatching it to the original exception.</span></span></span></p>
<p><span><span><span><br>
</span></span></span></p>
<p><span><span><span>Best,</span></span></span></p>
<p><span><span><span>Christoph</span></span></span></p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Lauren P <drurowin@gmail.com><br>
<b>Gesendet:</b> Montag, 28. November 2022 17:49:01<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> [squeak-dev] wrt debugger flexibility</font>
<div> </div>
</div>
<div>
<div dir="auto">Hi List,
<div dir="auto"><br>
</div>
<div dir="auto">In reference to my question about the debugger in regards to Chronology-Core-dtl.80, I have a proposal.</div>
<div dir="auto"><br>
</div>
<div dir="auto">I am halfway or so to stealing RESTART from Common Lisp for Squeak.  It lets the programmer define alternatives for exception handling.  Restarts would be responsible for making the Proceed, Abandon, etc. buttons in the debugger window, with
 every #on:offer: defining a button.</div>
<div dir="auto"><br>
</div>
<div dir="auto">It's an extra layer of indirection and complexity in the evaluator, but it is an extremely powerful tool for writing clean code.  If I had to choose one of an interactive debugger or restarts I'd pick restarts.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Implementation is easy but tedious... restarts have lots of optional parameters.  If List thinks RESTART would be a good thing to have I will prioritize it.</div>
<div dir="auto"><br>
</div>
<div dir="auto">PS: Whoever wrote the signalling code, thank you.  It is very clean and easy to read.  I learned everything about dynamic extent in Smalltalk from reading it.</div>
<div dir="auto"><br>
</div>
<div dir="auto">-- </div>
<div dir="auto">Obviously, I vote yes, and the effort to not proselytize the Cult Of Restart here is great indeed.</div>
</div>
</div>
</body>
</html>