<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Jaromir,<br>
<br>
WRT 1: We'd also remove class ProceedBlockCanNotReturn, right?<br>
<br>
WRT 2: Eliot calls #hasIdenticalContentsAs: , for which I don't have
an implementation. Can you provide one?<br>
<br>
Thanks!<br>
<br>
On 2/2/2022 8:49 PM, Jaromir Matas via Cuis-dev wrote:
<blockquote
cite="mid:BYAPR03MB40724B28DC899F2A24BC0E8DEE279@BYAPR03MB4072.namprd03.prod.outlook.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Courier New";
color:black;}
p.md-end-block, li.md-end-block, div.md-end-block
{mso-style-name:md-end-block;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;}
span.md-plain
{mso-style-name:md-plain;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
<div class="WordSection1">
<p class="MsoNormal">Hi Juan,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Works perfectly, thanks! I’m reviewing all
examples and updating the expected results. I’ve also replaced
strings with symbols so we won’t have to struggle with the
quotes :)
</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’d like to ask you to make two additional
changes:</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">1. revert MethodContext >>
cannotReturn: back to your original version (enclosed fileout
fyi). The latest #terminate doesn’t need the newer modified
version any longer and works better with the original one and,
what’s more important, the newer one breaks one of the
examples (interestingly doesn’t break any test). Generally
it’s better if #terminate’s good behavior is not dependent on
#cannotReturn (the new terminate detects and avoids executing
it).</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">2. please review the enclosed Eliot’s
modification of Object >> doesNotUnderstand dealing with
infinite recursion of the MNU error if you keep proceeding the
error without doing any modification to the message not
understood. The current doesNotUnderstand recursive behavior
impacts some terminate examples with the MNU error involved
and Eliot’s modification fixes it – what it does it checks
whether the next MNU error has identical conditions and
prevents the loop. If you agree to merge it I’ll update the
examples accordingly. The loop only occurs when the MNU error
happens inside an unwind block, which is rare but I’d prefer
to have it clean :)</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks very much,</p>
<p class="MsoNormal">Jaromir</p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border-right: medium none; border-width: 1pt medium
medium; border-style: solid none none; border-color: rgb(225,
225, 225) -moz-use-text-color -moz-use-text-color; padding:
3pt 0in 0in;">
<p class="MsoNormal" style="border: medium none; padding:
0in;"><b>From: </b><a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><br>
<b>Sent: </b>Wednesday, February 2, 2022 23:32<br>
<b>To: </b><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis
Smalltalk</a><br>
<b>Cc: </b><a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a>; <a
moz-do-not-send="true" href="mailto:mail@jaromir.net">
Jaromir Matas</a><br>
<b>Subject: </b>Re: [Cuis-dev] Improved version of
#terminate</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color: black;">Thanks Jaromir.<br>
<br>
The test is integrated. I also fixed the format in
#terminateExamples.<br>
<br>
WRT User Interrupt, in Cuis I recently changed to usually
interrupt whatever process was running the moment Alt + .
was pressed. I think this makes sense. If the process
happens to be the background process, it refuses to do it,
as the VM requires a runnable background process at all
times.<br>
<br>
What it seems I left out, and the old code somehow did, is
to create a new UI process if the previous one was
terminated by any reason. Just pushed a change to do that.
With the new updates, Alt + . again recovers control.<br>
<br>
Thanks for reporting the problem!<br>
<br>
Cheers,<br>
On 2/2/2022 2:36 PM, Jaromir Matas via Cuis-dev wrote: <o:p></o:p></span></p>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<p class="MsoNormal"><span style="color: black;">Hi Juan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">I’m reviewing
the set of terminate examples and this one behaves
suspiciously – it suspends the UI as expected but then the
system refuses to recover via Alt + .<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">In Squeak the
Alt + . recovery works fine. Could you please take look?
Thanks!
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Jaromir<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">[ ] ensure: [<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">
[Processor activeProcess terminate] ensure: [<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">
Transcript show: #x1].
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">
Transcript show: #x2<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">
]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">"prints x1 x2
and suspends the UI; in Cuis NOT recoverable via Alt+. and
prints Can not interrupt backgroundProcess (!)"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<div style="border-right: medium none; border-width: 1pt
medium medium; border-style: solid none none; padding: 3pt
0in 0in; border-color: rgb(225, 225, 225)
-moz-use-text-color -moz-use-text-color;">
<p class="MsoNormal"><b><span style="color: black;">From: </span></b><span
style="color: black;"><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Jaromir Matas via
Cuis-dev</a><br>
<b>Sent: </b>Tuesday, February 1, 2022 20:59<br>
<b>To: </b><a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a>;
<a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">
Discussion of Cuis Smalltalk</a><br>
<b>Cc: </b><a moz-do-not-send="true"
href="mailto:mail@jaromir.net">Jaromir Matas</a><br>
<b>Subject: </b>Re: [Cuis-dev] Improved version of
#terminate<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Hi Juan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Thank you!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">I'm sending
the test I owe you - #testProcessFaithfulTermination -
this is a new feature of the latest terminate; the test
shows the same process that created the unwind blocks also
executes them during termination.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">I’ll be
reviewing the terminate examples and get back later.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Thanks again.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Best,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Jaromir<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<div style="border-right: medium none; border-width: 1pt
medium medium; border-style: solid none none; padding: 3pt
0in 0in; border-color: rgb(225, 225, 225)
-moz-use-text-color -moz-use-text-color;">
<p class="MsoNormal"><b><span style="color: black;">From: </span></b><span
style="color: black;"><a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><br>
<b>Sent: </b>Thursday, January 27, 2022 19:21<br>
<b>To: </b><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of
Cuis Smalltalk</a><br>
<b>Cc: </b><a moz-do-not-send="true"
href="mailto:mail@jaromir.net">Jaromir Matas</a><br>
<b>Subject: </b>Re: [Cuis-dev] Improved version of
#terminate<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Hi Jaromir,
Folks,<br>
<br>
This is integrated and pushed to GitHub now.<br>
<br>
Thanks,<br>
<br>
On 1/24/2022 3:51 PM, Jaromir Matas via Cuis-dev wrote: <o:p></o:p></span></p>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<div>
<p class="md-end-block"><span class="md-plain"><span
style="font-size: 12pt; font-family:
"Arial",sans-serif;">Hi Juan, all,</span></span></p>
<p class="md-end-block"><span class="md-plain"><span
style="font-size: 12pt; font-family:
"Arial",sans-serif;">Happy to hear from
you :)</span></span></p>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif;">Hello
Jaromir, Folks,</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif;">I took
a look at the code, and it looks correct to me,
although I don't understand this well enough to be
sure. All the tests you wrote last year pass, and
that is great.</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif;">I
think we'd integrate this. Still, I think it could
be good to keep the current #terminate as a
separate method, maybe
#terminateFromForkedProcess, just in case it
proves<br>
useful in the future.</span></span></p>
</blockquote>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif; color:
rgb(128, 142, 149);">Thanks very much for reviewing
the code; I think this is a good idea to keep the
older version, at least for a while. I'm really
happy it's been stable and nobody<br>
complained :)</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif; color:
rgb(128, 142, 149);">This new approach of one
process using two stacks simplifies the code
substantially but let's keep an eye on it, for sure.
Later, if this terminate proves as<br>
stable as the current one, the exact same approach
could be used for exception unwinds too
(ContextPart>>resume: etc).</span></span></p>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<p class="md-end-block" style="margin: 0in;"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif;">I'd be
very thankful if others could take a look, and
better yet, try it and see if it brings any
trouble.</span></span></p>
</blockquote>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif; color:
rgb(128, 142, 149);">That would be great, thanks
again; any concerns or suspicions, please tell me.</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif; color:
rgb(128, 142, 149);">Best regards,</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif; color:
rgb(128, 142, 149);">Jaromir</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif; color:
rgb(128, 142, 149);">--</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size: 12pt;
font-family: "Arial",sans-serif; color:
rgb(128, 142, 149);">Jaromir Matas</span></span></p>
</div>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<div style="border-right: medium none; border-width: 1pt
medium medium; border-style: solid none none; padding: 3pt
0in 0in; border-color: -moz-use-text-color;">
<p class="MsoNormal"><b><span style="color: black;">From:
</span></b><span style="color: black;"><a
moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Juan Vuletich
via Cuis-dev</a><br>
<b>Sent: </b>Monday, January 24, 2022 18:15<br>
<b>To: </b><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of
Cuis Smalltalk</a><br>
<b>Cc: </b><a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a>;
<a moz-do-not-send="true"
href="mailto:ten@smallinteger.com">
Andres Valloud</a>; <a moz-do-not-send="true"
href="mailto:mail@jaromir.net">Jaromir Matas</a>; <a
moz-do-not-send="true"
href="mailto:hernan.wilkinson@10pines.com">
Hernan Wilkinson</a><br>
<b>Subject: </b>Re: [Cuis-dev] Improved version of
#terminate<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">On
1/18/2022 4:07 PM, Jaromir Matas via Cuis-dev wrote:
<o:p></o:p></span></p>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<p class="MsoNormal"><span style="color: black;">Hi Juan,
all,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">I'm
enclosing a new version of #terminate; I thought you
might be interested to take a look and indeed, I'd be
very much interested in your opinion. The termination
functionality and semantics remains intact but the
code is simplified and addresses Eliot's concerns
regarding active process termination being done via
another process. The enclosed code executes both
active and suspended process’s termination directly by
the process being terminated thus maintaining the
invariant that the unwind blocks are executed by the
same process that created them (this is the only real
disadvantage of the current terminate; it’s not
process faithful). The technique used is to create a
parallel stack for the process being terminated and
run the unwinds conveniently from there :) (thorough
comments included). <o:p>
</o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">I'm also
enclosing some updated tests to reflect the new
approach to the active process termination. If you
were interested, I'd be happy to also provide updated
examples and add some more tests later.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Best
regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;">Jaromir<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal" style="margin-bottom: 12pt;"><span
style="color: black;"><br>
Hello Jaromir, Folks,<br>
<br>
I took a look at the code, and it looks correct to me,
although I don't understand this well enough to be sure.
All the tests you wrote last year pass, and that is
great.<br>
<br>
I think we'd integrate this. Still, I think it could be
good to keep the current #terminate as a separate
method, maybe #terminateFromForkedProcess, just in case
it proves useful in the future.<br>
<br>
I'd be very thankful if others could take a look, and
better yet, try it and see if it brings any trouble.<br>
<br>
Thanks!<br>
<br>
<br>
<o:p></o:p></span></p>
<pre>-- </pre>
<pre>Juan Vuletich</pre>
<pre><a moz-do-not-send="true" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a></pre>
<pre><a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a></pre>
<pre><a moz-do-not-send="true" href="https://github.com/jvuletich">https://github.com/jvuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a></pre>
<pre><a moz-do-not-send="true" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a></pre>
<pre>@JuanVuletich</pre>
<p class="MsoNormal"><span style="font-size: 10pt;
font-family: "Courier New"; color: black;"> </span><span
style="color: black;"><o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal" style="margin-bottom: 12pt;"><span
style="color: black;"><br>
<br>
<br>
<o:p></o:p></span></p>
<pre>-- </pre>
<pre>Juan Vuletich</pre>
<pre><a moz-do-not-send="true" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a></pre>
<pre><a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a></pre>
<pre><a moz-do-not-send="true" href="https://github.com/jvuletich">https://github.com/jvuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a></pre>
<pre><a moz-do-not-send="true" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a></pre>
<pre>@JuanVuletich</pre>
<p class="MsoNormal"><span style="font-size: 10pt;
font-family: "Courier New"; color: black;"> </span><span
style="color: black;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: black;"> <o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color: black;"><br>
<br>
<br>
<o:p></o:p></span></p>
<pre>-- </pre>
<pre>Juan Vuletich</pre>
<pre><a moz-do-not-send="true" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a></pre>
<pre><a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a></pre>
<pre><a moz-do-not-send="true" href="https://github.com/jvuletich">https://github.com/jvuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a></pre>
<pre><a moz-do-not-send="true" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a></pre>
<pre><a moz-do-not-send="true" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a></pre>
<pre>@JuanVuletich</pre>
<p class="MsoNormal"><span style="font-size: 10pt; font-family:
"Courier New"; color: black;"><o:p> </o:p></span></p>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a class="moz-txt-link-freetext" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a>
<a class="moz-txt-link-freetext" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a class="moz-txt-link-freetext" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
@JuanVuletich</pre>
</body>
</html>