<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
<p>Hi Nicolas,</p>
<p><br>
</p>
<p>> <span style="font-size: 12pt;">In order to purge the inbox, I've been in the process of reviewing </span><span style="font-size: 12pt;">brainfuck code (a very slow process). While at it, I decided to </span><span style="font-size: 12pt;">revisit the solution
 for nested exception handlers (see </span><span style="font-size: 12pt;">testHandlerFromAction).</span></p>
<div><br>
</div>
<p></p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div>
<div class="_rp_T4" id="Item.MessagePartBody">
<div class="_rp_U4 ms-font-weight-regular ms-font-color-neutralDark rpHighlightAllClass rpHighlightBodyClass" id="Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont">
<div><font size="3" color="black"><span style="font-size:12pt"><a href="http://www.hpi.de/" target="_blank" rel="noopener noreferrer" id="LPNoLP"><font size="2"><span id="LPlnk909538"><font color="#757B80"></font></span></font></a></span></font></div>
</font></div>
</div>
</font></div>
</div>
</div>
</div>
<div class="_rp_T4" id="Item.MessagePartBody">I appreciate both of these very much, thank you for your efforts! (Regular) code review and integration is an important process, in particular for a bipartite community like us. I'm aware of the fact that personally,
 I am only piling up new proposals that need a review but almost never have helped to carry off/review existing ones. If there is anything I (or other interested people) could do to support you in cleaning up the inbox - that goes beyond the administrative
 power to press the merge button (a privilege which I consider myself not mature for at the moment) -, please let me know!</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
<br>
</div>
Best,</div>
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
Christoph<br>
<br>
<div style="color: rgb(0, 0, 0);">
<div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com><br>
<b>Gesendet:</b> Sonntag, 11. April 2021 19:36 Uhr<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> [squeak-dev] Revisiting the fix for nested exception handling</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">Hi all,<br>
In order to purge the inbox, I've been in the process of reviewing<br>
brainfuck code (a very slow process). While at it, I decided to<br>
revisit the solution for nested exception handlers (see<br>
testHandlerFromAction).<br>
<br>
There are two similar and obsolete fixes in the inbox (due to<br>
ContextPart->Context transition), Kernel-nice.857 and Kernel-fbs.870<br>
(backported from Cuis) that I moved to treated inbox for that reason.<br>
<a href="https://source.squeak.org/treated/Kernel-nice.857.diff">https://source.squeak.org/treated/Kernel-nice.857.diff</a><br>
<a href="https://source.squeak.org/treated/Kernel-fbs.870.diff">https://source.squeak.org/treated/Kernel-fbs.870.diff</a><br>
<br>
Alas, those two solutions break the very peculiar expectations of<br>
testHandlerReentrancy. This is a pity, because to my knowledge, those<br>
expectations are essential for Tweak and Croquet.<br>
<br>
There was a previous attempt from Andreas which was more a simple hack<br>
in handleSignal:, that is to disable the handler by setting the temp<br>
variable handlerActive in on:do: to false (self tempAt: 3 put: false).<br>
I've generalized this solution.<br>
<a href="https://source.squeak.org/treated/Kernel-ar.540.diff">https://source.squeak.org/treated/Kernel-ar.540.diff</a><br>
<br>
However, there are several reasons why this does not work: the first<br>
one, objected by Julian Fitzell here<br>
<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-January/156453.html">http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-January/156453.html</a><br>
is that the handler must be able to handle a secondary exception<br>
raised by the defaultAction. We can find similar expectations with<br>
other exception handling, like resignalAs (I will publish another test<br>
soon).<br>
<br>
However, there is some simple strategy: before resuming the exception,<br>
scan the context stack a second time so as to rearm the exception<br>
handlers that we disabled during handleSignal:.<br>
<br>
The major drawback, is that I have to spread a few self<br>
reactivateHandlers here and there, virtually before every send of<br>
#resumedUnchecked:.<br>
The second drawback is that scanning the stack a second time is not<br>
the most economical solution, but I don't care too much, we have to<br>
make it right first.<br>
<br>
If you find the courage to review, or more easily just to test it,<br>
find it in the inbox...<br>
Oups, I accidentally published in trunk...<br>
Well the review will be forced, if you don't like it, admin please<br>
remove or revert.<br>
Sorry.<br>
<br>
</div>
</span></font></div>
</div>
</div>
</body>
</html>