<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hi Marcel, Hi Chris,</p>
<p><br>
</p>
<p>thanks for your feedback. I see your point of complexity, still, I think BlockClosure #& etc. could be a nice concept, but it would rather belong in an own repository (such as Xtreams, for example). </p>
<p><br>
</p>
<p>See <span>Kernel-ct.1292/2 for the next attempt. :-)</span></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"><br>
</div>
<div class="_rp_T4" id="Item.MessagePartBody">@Chris: You're right with your interpretation, I'm aiming to get rid of this low-level #pass sends and all the condition logic inside handlerActions.</div>
<div class="_rp_T4" id="Item.MessagePartBody"><br>
</div>
<div class="_rp_T4" id="Item.MessagePartBody">> <span style="font-size: 12pt;">(wait, is that, #on:do:on: ?  I'm confused on this one...)</span>
<div><br>
</div>
<div>Oops, this should have been #on:do:on:do: instead. But I fear this would be over-complicated anyway ...</div>
<div><br>
</div>
<div>Best,</div>
<div>Christoph</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Freitag, 9. Oktober 2020 08:57:05<br>
<b>An:</b> Chris Muller; squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] Exception patterns (The Inbox: Kernel-ct.1292.mcz)</font>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
Hi Christoph,
<div><br>
</div>
<div>you are proposing an interface to avoid having to deal with Exception >> #pass and #resume:. I like #on:when:do:, maybe renamed to: #on:satisfying:do:. I do not like your & syntax because it would mix Exception, ExceptionSet, and BlockClosure -- which
 may be hard to understand and debug.</div>
<div><br>
</div>
<div>Bset,</div>
<div>Marcel</div>
<div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
<p style="color: #AAAAAA; margin-top: 10px;">Am 09.10.2020 03:15:43 schrieb Chris Muller <asqueaker@gmail.com>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<div dir="ltr">
<div dir="ltr"></div>
<div class="gmail_quote">
<div class="gmail_attr">Hi Christoph,</div>
<div class="gmail_attr"><br>
</div>
<div class="gmail_attr">Are these equivalent --<br>
</div>
<div class="gmail_attr"><br>
</div>
<div class="gmail_attr">On Thu, Jan 2, 2020 at 7:58 PM Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de" target="_blank">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Outlook jumbled my message completely. Here the examples again:<br>
<br>
[self model merge]<br>
        on: MCMergeResolutionRequest<br>
                & [:request | request merger conflicts notEmpty]<br>
        do: [:request | request resume: true].<br>
</blockquote>
<div><br>
</div>
<div>equal to:</div>
<div><br>
</div>
<div>  [self model merge]</div>
<div>        on: MCMergeResolutionRequest</div>
<div>        do: </div>
<div>           [:request | request merger conflicts notEmpty</div>
<div>                ifTrue: [request resume: true]</div>
<div>                ifFalse: [request pass] ]</div>
<div><br>
</div>
<div>?</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
[client unusedBytecode]<br>
        on: MessageNotUnderstood<br>
                & [:ex | ex receiver == client]<br>
                & [:ex | ex message selector == #unusedBytecode]<br>
        do: [self error: 'unusedBytecode'].<br>
</blockquote>
<div><br>
</div>
<div>equal to</div>
<div><br>
</div>
<div>   [client unusedBytecode]</div>
<div>         on: MessageNotUnderstood</div>
<div>         do:</div>
<div>               [:ex | (ex receiver == client and: [ ex message selector == #unusedBytecode ])</div>
<div>                      ifTrue: [ self error: 'unusedBytecode' ]</div>
<div>                      ifFalse: [ ex pass ] ]</div>
<div><br>
</div>
<div>?</div>
<div><br>
</div>
<div>Not sure if I fully understood it, but is it just a reformat of the syntax?  Or something more empowering?</div>
<div><br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
references := [self resolvePackageSpecReferences: packageSpec gofer: gofer]<br>
        on: [self class retryPackageResolution] & (Error , GoferRepositoryError)<br>
        do: [:ex | retryCount >= 2 ifFalse: [<br>
                ex return: #() ]<br>
        on: [self class retryPackageResolution] & GoferRepositoryError.<br>
                Transcript showln: 'gofer repository error: '; show: ex description printString; show: '...ignoring'.<br>
                (repositoryError := ex) resume: #()]. </blockquote>
<div><br>
</div>
<div>(wait, is that, #on:do:on: ?  I'm confused on this one...)</div>
<div><br>
</div>
<div>  - Chris</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
sz := 1024*1024*1024*1024.<br>
self<br>
        should: [Array new: sz]<br>
        raise: OutOfMemory, (Error & [:ex | ex messageText includesSubstring: 'basicNew: with invalid argument']).<br>
</blockquote>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>