<div dir="ltr">Hi guys,<div> I do not have to much time so I apologize for the short and direct opinion on this matter.</div><div><br></div><div>Andres, when you say:</div><div>---</div><div>a) effectively, nobody is looking at how the exception handling<br>mechanism is implemented, so doing non-local return like that curtails<br>the private implementation of exception handling,<br></div><div>---</div><div>The solution is to make the exception handling implementation aware of this situation. As it is right now, it works correctly<br></div><div><br></div><div>----</div><div>b) that kind of behavior is what the messages #return, #resume, #pass,<br>#outer, etc are there for,<br></div><div>----</div><div>Well , not really, non of them have the same semantics of non local return. </div><div><br></div><div>I do not see a problem in debugging something line [] on: Error do: [ ^5 ]. If I want to do it I would do this: [] on: Error do: [ ^5 halt ]</div><div>Regarding confusing [] on: Error do: [ ^5 ] with [] on: Error do: [ :ex | ex return: 5 ], that could happen with non local returns everywhere, that is a problem of not knowing what non local returns really means, not a problem on how to use exception handling...</div><div><br></div><div>Anyway, I understand your concern and I think the current solution, showing a warning in the transcript, is the right one.</div><div><br></div><div>Cheers!</div><div>Hernan.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 14, 2019 at 4:04 AM Andres Valloud via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</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">On 10/13/19 21:36, Phil B wrote:<br>
> Andres,<br>
> <br>
> On Sun, Oct 13, 2019 at 10:51 PM Andres Valloud via Cuis-dev <br>
> <<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a> <mailto:<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>>> wrote:<br>
> <br>
>     Do we even agree this is a problem?<br>
> <br>
> I'd say there's a second question: If so, what do we do about it?<br>
<br>
Provided we agree there's a problem, we can consider that.  Part of what <br>
I'm trying to do here is to fully characterize the problem before coming <br>
up with solutions.  Otherwise, there is a risk that we will engage in <br>
so-called 'solutioning' (i.e. a beauty contest between solutions), <br>
instead of solving the problem.<br>
<br>
> I would agree it's a problem and that it's a question of how to handle <br>
> it.  I'm in favor of at least voluntarily minimizing the use of <br>
> non-local returns just to ensure expected debugger behavior regardless <br>
> of whether or not it's technically 'legal' and/or we effectively forbid it.<br>
<br>
Ok, but let's hear from others before deciding on a path forward.<br>
<br>
> One bit of feedback on this approach related to the last time we forbid <br>
> something this way: I still absolutely *hate* the exceptions for <br>
> shadowing variable names.  I find the mechanism annoying for something <br>
> that is a non-problem to me.  Others may feel that way about raising <br>
> exceptions for this issue.  I would much prefer that we handle issues <br>
> like these with some sort of opt-in linting/logging mechanism than <br>
> mandatory policy enforced by exceptions.<br>
<br>
I know nothing of this, I have no opinion.<br>
<br>
>     d) it's possible to distort the exception handling mechanism behavior<br>
>     with non-local returns.<br>
> <br>
> This one concerns me because we effectively have what appears to be a <br>
> 'legal' (in the sense that blocks can do it) end-run around the <br>
> exception mechanism.  Are there any examples of existing core code / <br>
> packages with subtle bugs because of this?<br>
<br>
I do not recall any specific instance of an actual bug because of this <br>
issue at this time.  I have a general recollection of seeing, many <br>
times, code that read along the lines of<br>
<br>
        [:ex | ^5]<br>
<br>
when it really meant<br>
<br>
        [:ex | ex return: 5]<br>
<br>
and the problem with it is that it's not debugging friendly.  That is, <br>
it's not that [:ex | ^5] itself caused a bug, but I was debugging around <br>
that and the non-local return made life harder than necessary.<br>
<br>
> Finally, does any literature (Blue Book, ANSI, previous discussion(s)... <br>
> whatever) specifically discuss do's/don'ts re: exception blocks or is it <br>
> just an ambiguous issue that was never delved into?  If anything does <br>
> exist, shouldn't we also consider it regarding how to proceed?<br>
<br>
Sure, we can look into that.<br>
<br>
Andres.<br>
-- <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" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal"><span style="font-weight:bold">Hernán Wilkinson</span><br>Agile Software Development, Teaching & Coaching</span></font></span></span></span></strong></span></div><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal">Phone: +54-011</span></font></span></span></span></strong></span><font face="tahoma, sans-serif" size="2">-4893-2057</font></div><div><strong style="font-family:tahoma,sans-serif;font-size:xx-small"><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Twitter: @HernanWilkinson</span></font></span></span></strong></div><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal">site: <a href="http://www.10pines.com/" style="color:rgb(17,65,112)" target="_blank">http://www.10Pines.com</a></span></font></span></span></span></strong></span></div><div><font face="tahoma, sans-serif"><span style="border-collapse:collapse">Address: Alem 896</span></font>, Floor 6, Buenos Aires, Argentina</div></div></div></div></div></div></div></div></div></div></div></div>