<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
On 3/13/2023 6:05 PM, Alexandre Rousseau via Cuis-dev wrote:
<blockquote
cite="mid:CAKmOay+1bX1oVRu=z0930m_Qnri625HWVVLzZkvX7EpmotLm+w@mail.gmail.com"
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
cite="mid:CAKmOay+1bX1oVRu=z0930m_Qnri625HWVVLzZkvX7EpmotLm+w@mail.gmail.com"
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 moz-do-not-send="true"
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;">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 moz-do-not-send="true" href="http://cuis.st"
rel="noreferrer" target="_blank">cuis.st</a><br>
<a moz-do-not-send="true" href="http://github.com/jvuletich"
rel="noreferrer" target="_blank">github.com/jvuletich</a><br>
<a moz-do-not-send="true"
href="http://researchgate.net/profile/Juan-Vuletich"
rel="noreferrer" target="_blank">researchgate.net/profile/Juan-Vuletich</a><br>
<a moz-do-not-send="true"
href="http://independent.academia.edu/JuanVuletich"
rel="noreferrer" target="_blank">independent.academia.edu/JuanVuletich</a><br>
<a moz-do-not-send="true"
href="http://patents.justia.com/inventor/juan-manuel-vuletich"
rel="noreferrer" target="_blank">patents.justia.com/inventor/juan-manuel-vuletich</a><br>
<a moz-do-not-send="true"
href="http://linkedin.com/in/juan-vuletich-75611b3"
rel="noreferrer" target="_blank">linkedin.com/in/juan-vuletich-75611b3</a><br>
<a moz-do-not-send="true"
href="http://twitter.com/JuanVuletich" rel="noreferrer"
target="_blank">twitter.com/JuanVuletich</a><br>
<br>
</blockquote>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
</body>
</html>