<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<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>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hi Juan,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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 + .</p>
<p class="MsoNormal">In Squeak the Alt + . recovery works fine. Could you please take look? Thanks!
</p>
<p class="MsoNormal">Jaromir</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ ] ensure: [</p>
<p class="MsoNormal">                [Processor activeProcess terminate] ensure: [</p>
<p class="MsoNormal">                                Transcript show: #x1]. </p>
<p class="MsoNormal">                Transcript show: #x2</p>
<p class="MsoNormal">                ]</p>
<p class="MsoNormal">"prints x1 x2 and suspends the UI; in Cuis NOT recoverable via Alt+. and prints Can not interrupt backgroundProcess (!)"</p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a 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 href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a>; <a href="mailto:cuis-dev@lists.cuis.st">
Discussion of Cuis Smalltalk</a><br>
<b>Cc: </b><a 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">Hi Juan,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you!<o:p></o:p></p>
<p class="MsoNormal">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></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ll be reviewing the terminate examples and get back later.<o:p></o:p></p>
<p class="MsoNormal">Thanks again.<o:p></o:p></p>
<p class="MsoNormal">Best,<o:p></o:p></p>
<p class="MsoNormal">Jaromir<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From: </b><a href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><br>
<b>Sent: </b>Thursday, January 27, 2022 19:21<br>
<b>To: </b><a href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis Smalltalk</a><br>
<b>Cc: </b><a href="mailto:mail@jaromir.net">Jaromir Matas</a><br>
<b>Subject: </b>Re: [Cuis-dev] Improved version of #terminate<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></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:5.0pt;margin-bottom:5.0pt">
<div>
<p class="md-end-block"><span class="md-plain"><span style="font-size:12.0pt;font-family:"Arial",sans-serif">Hi Juan, all,</span></span></p>
<p class="md-end-block"><span class="md-plain"><span style="font-size:12.0pt;font-family:"Arial",sans-serif">Happy to hear from you :)</span></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size:12.0pt;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:12.0pt;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:12.0pt;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:12.0pt;font-family:"Arial",sans-serif;color:#808E95">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:12.0pt;font-family:"Arial",sans-serif;color:#808E95">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:5.0pt;margin-bottom:5.0pt">
<p class="md-end-block" style="margin:0in"><br>
<span class="md-plain"><span style="font-size:12.0pt;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:12.0pt;font-family:"Arial",sans-serif;color:#808E95">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:12.0pt;font-family:"Arial",sans-serif;color:#808E95">Best regards,</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:#808E95">Jaromir</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:#808E95">--</span></span></p>
<p class="md-end-block"><br>
<span class="md-plain"><span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:#808E95">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:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 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><a href="mailto:cuis-dev@lists.cuis.st">Juan Vuletich via Cuis-dev</a><span style="color:black"><br>
<b>Sent: </b>Monday, January 24, 2022 18:15<br>
<b>To: </b></span><a href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis Smalltalk</a><span style="color:black"><br>
<b>Cc: </b></span><a href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><span style="color:black">;
</span><a href="mailto:ten@smallinteger.com">Andres Valloud</a><span style="color:black">;
</span><a href="mailto:mail@jaromir.net">Jaromir Matas</a><span style="color:black">;
</span><a href="mailto:hernan.wilkinson@10pines.com">Hernan Wilkinson</a><span style="color:black"><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:5.0pt;margin-bottom:5.0pt">
<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:12.0pt"><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>
<o:p></o:p></span></p>
<pre>-- </pre>
<pre>Juan Vuletich</pre>
<pre><a href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a></pre>
<pre><a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a></pre>
<pre><a href="https://github.com/jvuletich">https://github.com/jvuletich</a></pre>
<pre><a href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a></pre>
<pre><a href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a></pre>
<pre><a href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a></pre>
<pre><a 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:10.0pt;font-family:"Courier New";color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="color:black"><br>
<br>
<o:p></o:p></span></p>
<pre>-- </pre>
<pre>Juan Vuletich</pre>
<pre><a href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a></pre>
<pre><a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a></pre>
<pre><a href="https://github.com/jvuletich">https://github.com/jvuletich</a></pre>
<pre><a href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a></pre>
<pre><a href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a></pre>
<pre><a href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a></pre>
<pre><a 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:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>