<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;}
@font-face
        {font-family:"Calibri Light";
        panose-1:2 15 3 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 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;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
        {mso-style-priority:1;
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.m-1962667289679495542msonospacing, li.m-1962667289679495542msonospacing, div.m-1962667289679495542msonospacing
        {mso-style-name:m_-1962667289679495542msonospacing;
        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;}
.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 Hern<span lang="CS">á</span>n,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks for your message!</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> I'll take a look at the code you sent but I prefer for Juan to return to integrate it</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">… of course, there’s no rush, the duplication has been around for 20 years :D</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Most of all, I’m interested in your opinions. As an example, I find this call sequence desperately begging for simplification:
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Exception>>resume: --> resumeUnchecked: --> resumeEvaluating: --> Context>>returnEvaluating: --> resumeEvaluating:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I mean: in order to resume from an exception you have to traverse four other methods rather than just getting it done in Exception>>resume: as was originally implemented in Squeak 2.8 through 3.5. My aim is to get back to this design -
 unless I’ve missed some fundamental reason why not to. Any feedback *<b>very</b>* welcome.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks again,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNoSpacing"><span lang="CS">--</span></p>
<p class="MsoNoSpacing"><strong><span style="font-family:"Calibri Light",sans-serif;color:#333333;font-weight:normal">Jaromír Matas</span></strong><span style="font-family:"Calibri Light",sans-serif;color:#555555"><o:p></o:p></span></p>
<p class="MsoNoSpacing"><span style="font-family:"Calibri Light",sans-serif;color:#2E75B6">mail@jaromir.net<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#8FAADC"><o:p> </o:p></span></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:hernan.wilkinson@10pines.com">Hernán Wilkinson</a><br>
<b>Sent: </b>Thursday, February 2, 2023 19:00<br>
<b>To: </b><a href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis Smalltalk</a><br>
<b>Cc: </b><a href="mailto:juan@cuis.st">juan@cuis.st</a>; <a href="mailto:mail@jaromir.net">
Jaromir Matas</a><br>
<b>Subject: </b>Re: [Cuis-dev] Code duplication around unwinding</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi Jaromir,<o:p></o:p></p>
<div>
<p class="MsoNormal"> thank you for this proposal!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> Juan is on vacation, deserved vacations :-) <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> I'll take a look at the code you sent but I prefer for Juan to return to integrate it because he was more involved in the changes you sent.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> About the reason of the duplication of code you see the answer could be really simple: copy & paste!!! :-) <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> I also sometimes spend time trying to understand why the code is duplicated and most of the time it is just that, copy & paste without any intention or knowledge to do it better. I mean, usually it is a human reason, not a technical one.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hernan.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, Feb 2, 2023 at 1:38 PM Jaromir Matas via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
Hi Juan,</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
I'm enclosing a changeset for your review. I've just sent a similar suggestion to Squeak list hoping to get some feedback.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
The aim is to reduce the code duplication in ContextPart>>#restart, #resume:through:, #resumeEvaluating: methods that are implementing the same unwind mechanism we already have in unwindTo:. I've always wondered why the same algorithm is duplicated so many
 times (it used to be in terminate too!) but never really found out.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
At the same time this code duplication was introduced in Squeak 3.6, the unwind mechanism was moved from the Exception class to ContextPart and, but this is just my hypothesis, never cleaned up properly.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
I'd be very thankful for your thoughts and your opinion about the enclosed changeset.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
Many thanks,</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
Jaromir</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
<p class="m-1962667289679495542msonospacing"><span lang="CS">--</span></p>
<p class="m-1962667289679495542msonospacing"><strong><span style="font-family:"Calibri Light",sans-serif;color:#333333;font-weight:normal">Jaromír Matas</span></strong></p>
<p class="m-1962667289679495542msonospacing"><a href="mailto:mail@jaromir.net" target="_blank"><span style="font-family:"Calibri Light",sans-serif">mail@jaromir.net</span></a></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
<span style="color:#8FAADC"> </span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 </p>
</div>
</div>
<p class="MsoNormal" style="margin-left:4.8pt">-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><strong><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">Hernán Wilkinson</span></strong><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif"><br>
<strong><span style="font-family:"Tahoma",sans-serif;font-weight:normal">Agile Software Development, Teaching & Coaching</span></strong></span><span style="font-size:9.5pt"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;font-weight:normal">Phone: +54-011</span></strong><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">-4893-2057</span><span style="font-size:9.5pt"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;font-weight:normal">Twitter: @HernanWilkinson</span></strong><span style="font-size:9.5pt"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;font-weight:normal">site: </span></strong><a href="http://www.10pines.com/" target="_blank"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:#114170">http://www.10Pines.com</span></a><span style="font-size:9.5pt"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Tahoma",sans-serif">Address: Alem 896</span><span style="font-size:9.5pt">, Floor 6, Buenos Aires, Argentina<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>