<div dir="ltr">Thanks. And ... thanks for the new lets-not-shoot-ourselves-in-the-foot update. :)</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 13, 2023 at 6:56 PM Juan Vuletich <<a href="mailto:juan@cuis.st">juan@cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div bgcolor="#ffffff">
On 3/13/2023 6:05 PM, Alexandre Rousseau via Cuis-dev wrote:
<blockquote type="cite">
<div dir="ltr">This helps, thanks. I am at least able to freeze
things.
<div><br>
</div>
<div>Going further ... executing this in a workspace:
<div><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">b := BoxedMorph new.<br>
b addMorph: b.<br>
b openInHand.</blockquote>
<div><br>
</div>
<div>the pointer disappears (infinite redraw), I press cmd-.
and the debugger (User Interrupt) appears.</div>
</div>
<div><br>
</div>
<div>Is there any way, at that point, to restore VM state to
that point prior to (faulty) code execution (as in, cancel
last 2 messages, #addMorph: and #openInHand) ?</div>
</div>
</div>
</blockquote>
<br>
Yes. Just close the debugger. The garbage collector will do the
rest.<br>
<br>
Anyway, just pushed an update that prevents a morph becoming its own
submorph.<br>
<br>
Cheers,<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Mar 13, 2023 at
4:20 PM Juan Vuletich <<a href="mailto:juan@cuis.st" target="_blank">juan@cuis.st</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 3/13/2023 1:23 PM, Alexandre Rousseau
via Cuis-dev wrote:<br>
> I accidentally introduced a bug in my class instance
initialization <br>
> code (adding a submorph to itself). When instantiating my
class, the <br>
> debugger appeared but seemed impossible to interact with
while the <br>
> task bar rapidly filled up with more such debugger
representations.<br>
><br>
> Unable to deal with this, I killed my cuis environment,
losing 30 <br>
> minutes of work.<br>
><br>
> What do you do when faced with runaway exceptions? Is
there some <br>
> keyboard action once can perform to stop the execution of
it?<br>
<br>
It depends on where the exception is raised. If it is in
#drawOn:, we <br>
already have a recovery mechanism. In some other cases, cmd-.
(the <br>
interrupt key) let's you recover control. But the whole system
is <br>
implemented in Smalltalk. There will always be ways to break
code in a <br>
way that you can't get to a working UI again. As rabbit
already said, <br>
that's why there are several files where your code is logged,
so you can <br>
recover it.<br>
<br>
HTH,<br>
<br>
-- <br>
Juan Vuletich<br>
<a href="http://cuis.st" rel="noreferrer" target="_blank">cuis.st</a><br>
<a href="http://github.com/jvuletich" rel="noreferrer" target="_blank">github.com/jvuletich</a><br>
<a href="http://researchgate.net/profile/Juan-Vuletich" rel="noreferrer" target="_blank">researchgate.net/profile/Juan-Vuletich</a><br>
<a href="http://independent.academia.edu/JuanVuletich" rel="noreferrer" target="_blank">independent.academia.edu/JuanVuletich</a><br>
<a href="http://patents.justia.com/inventor/juan-manuel-vuletich" rel="noreferrer" target="_blank">patents.justia.com/inventor/juan-manuel-vuletich</a><br>
<a href="http://linkedin.com/in/juan-vuletich-75611b3" rel="noreferrer" target="_blank">linkedin.com/in/juan-vuletich-75611b3</a><br>
<a href="http://twitter.com/JuanVuletich" rel="noreferrer" target="_blank">twitter.com/JuanVuletich</a><br>
<br>
</blockquote>
</div>
</blockquote>
<br>
<br>
<pre cols="72">--
Juan Vuletich
<a href="http://cuis.st" target="_blank">cuis.st</a>
<a href="http://github.com/jvuletich" target="_blank">github.com/jvuletich</a>
<a href="http://researchgate.net/profile/Juan-Vuletich" target="_blank">researchgate.net/profile/Juan-Vuletich</a>
<a href="http://independent.academia.edu/JuanVuletich" target="_blank">independent.academia.edu/JuanVuletich</a>
<a href="http://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank">patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="http://linkedin.com/in/juan-vuletich-75611b3" target="_blank">linkedin.com/in/juan-vuletich-75611b3</a>
<a href="http://twitter.com/JuanVuletich" target="_blank">twitter.com/JuanVuletich</a></pre>
</div>
</blockquote></div>