<!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>