<!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>
Just pushed all your code and suggestions. I also removed
ProceedBlockCanNotReturn. Thanks!<br>
<br>
WRT `Processor activeProcess suspend` what I did is: if the UI
process is suspended, then terminate it. The reason is that starting
a new UI process, and later resuming the old one, would break
everything. By terminating it, I ensure it won't be resumed later.<br>
<br>
BTW, I love the timestamp for #terminate :)<br>
<br>
Cheers,<br>
<br>
On 2/22/2022 7:34 PM, Jaromir Matas via Cuis-dev wrote:
<blockquote
cite="mid:BYAPR03MB4072E9AF6BBE5465DD61FEBCEE3B9@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">I’m enclosing an updated #terminate – the
reason for the change is Eliot has implemented a new #suspend
primitive with revised semantics (when suspending a process
waiting on a semaphore/mutex the new suspend will back the pc
counter one instruction to the send: wait) – what’s important
here is the return value of #suspend will change which would
break #terminate because currently you do ```oldList := self
suspend``` inside #terminate. To avoid any dependency on the
#suspend behavior I suggest to do ```oldList := myList```
first and then suspend the process – see the changeset.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">You can verify the behavior on the new VMs:</p>
<p class="MsoNormal">Version 3133 backs up and returns nil</p>
<p class="MsoNormal">Version 3148 backs up and returns a
Semaphore</p>
<p class="MsoNormal">Version 3154 doesn’t back up and returns a
Semaphore</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The enclosed #terminate should work
correctly for all VM versions; you may find some tests failing
for some VMs – we’ll fix this after Eliot releases a final
version :)</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So the point of this updated #terminate is
to remove a dependency on a VM version.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Also, I’ve recently “discovered” the
original #terminate in Squeak versions 1 thru 3.5 – very
elegant and simple – and very similar to our latest version :)
Check this #teminate from 1999:</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">terminate </p>
<p class="MsoNormal"> "Stop the process that the
receiver represents forever."</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> | context |</p>
<p class="MsoNormal"> Processor activeProcess ==
self</p>
<p class="MsoNormal"> ifTrue: </p>
<p class="MsoNormal">
[thisContext unwindTo: nil.</p>
<p class="MsoNormal">
thisContext sender == nil ifFalse:</p>
<p class="MsoNormal">
[thisContext sender release].</p>
<p class="MsoNormal">
thisContext removeSelf suspend]</p>
<p class="MsoNormal"> ifFalse: </p>
<p class="MsoNormal">
[myList == nil</p>
<p class="MsoNormal">
ifFalse:
</p>
<p class="MsoNormal">
[myList remove: self ifAbsent: [].</p>
<p class="MsoNormal">
myList _ nil].</p>
<p class="MsoNormal">
context _ suspendedContext.</p>
<p class="MsoNormal">
suspendedContext _ nil.</p>
<p class="MsoNormal">
context == nil ifFalse: [context unwindTo: nil].</p>
<p class="MsoNormal">
(context ~~ nil and: [context sender ~~ nil])</p>
<p class="MsoNormal">
ifTrue: [context sender release]]</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,</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:cuis-dev@lists.cuis.st">Jaromir Matas via
Cuis-dev</a><br>
<b>Sent: </b>Thursday, February 3, 2022 13:00<br>
<b>To: </b><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis
Smalltalk</a>;
<a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</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</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">I guess this situation should be
recoverable via Alt + . as well:<o:p></o:p></p>
<p class="MsoNormal">```<o:p></o:p></p>
<p class="MsoNormal">Processor activeProcess suspend<o:p></o:p></p>
<p class="MsoNormal">```<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve updated all the examples and enclosing
a fileout. Replacing strings with symbols (to print results)
has an advantage that you can evaluate the examples directly
inside the Process >> terminateExamples method while
keeping the cool option to export them to a Workspace.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve tested the examples in Part 5 with
Eliot’s fix of the MNU recursion. The notes mention the fix
explicitly to avoid confusion. Also, I used the original
#cannotReturn (see the previous email). It’s safer to assume
the image may crash after proceeding the #cannotReturn anyway.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I was considering to put each of the
examples to a separate method but I think having them all in a
Workspace is more convenient - to compare the examples etc.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Have a nice day,<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-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"><b>From: </b><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Jaromir Matas via
Cuis-dev</a><br>
<b>Sent: </b>Thursday, February 3, 2022 1:17<br>
<b>To: </b><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis
Smalltalk</a>;
<a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</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></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Juan,<o:p></o:p></p>
<p class="MsoNormal">apologies, forgot to enclose a helper
method to Eliot’s MNU fix for your review.<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-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"><b>From: </b><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Jaromir Matas via
Cuis-dev</a><br>
<b>Sent: </b>Thursday, February 3, 2022 0:49<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></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">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 :)
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’d like to ask you to make two additional
changes:<o:p></o:p></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).<o:p></o:p></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 :)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks very much,<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-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"><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<o:p></o:p></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><a
moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Jaromir Matas via
Cuis-dev</a><span style="color: black;"><br>
<b>Sent: </b>Tuesday, February 1, 2022 20:59<br>
<b>To: </b></span><a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><span
style="color: black;">;
</span><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis
Smalltalk</a><span style="color: black;"><br>
<b>Cc: </b></span><a moz-do-not-send="true"
href="mailto:mail@jaromir.net">Jaromir Matas</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;">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><a
moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><span
style="color: black;"><br>
<b>Sent: </b>Thursday, January 27, 2022 19:21<br>
<b>To: </b></span><a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis
Smalltalk</a><span style="color: black;"><br>
<b>Cc: </b></span><a moz-do-not-send="true"
href="mailto:mail@jaromir.net">Jaromir Matas</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;">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><a moz-do-not-send="true"
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 moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">Discussion of
Cuis Smalltalk</a><span style="color: black;"><br>
<b>Cc: </b></span><a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><span
style="color: black;">;
</span><a moz-do-not-send="true"
href="mailto:ten@smallinteger.com">Andres Valloud</a><span
style="color: black;">;
</span><a moz-do-not-send="true"
href="mailto:mail@jaromir.net">Jaromir Matas</a><span
style="color: black;">;
</span><a moz-do-not-send="true"
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: 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!<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;"><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" style="margin-bottom: 12pt;"><span
style="color: black;"><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>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></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>