[squeak-dev] The Inbox: Kernel-jar.1399.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Tue May 4 20:03:48 UTC 2021
Waouh, you're exploring dark corners ;)
Le mar. 4 mai 2021 à 21:11, Jakob Reschke <jakres+squeak at gmail.com> a écrit :
>
> Hi Jaromir,
>
> Thank you for this survey! At least we can take away that we will not
> hurt portability much by changing anything here...
>
> Am Di., 4. Mai 2021 um 20:06 Uhr schrieb Jaromir Matas <m at jaromir.net>:
> >
> > One more argument and then I'll leave it :) If you try the following example
> > where #return is replaced by #resume, Squeak (and Pharo and VA) will fail
> > completely raising a cannot return error:
> >
> > | x |
> > x:=''.
> > [
> > [1/0. x:=x,'B'] on: ZeroDivide do: [:ex | ex signal. x:=x,'A'. ex resume].
> > "handler 1"
> > x:=x,'1'
> > ] on: ZeroDivide do: [:ex | ex resume]. "handler 2"
> > x:=x,'2'.
> > x
> >
>
> For non-resumable exceptions, this would be okay (although the error
> should not read "Cannot return"). However, since ZeroDivide is
> explicitly resumable, this is a bug. :-)
>
> > So my final suggestion is to define the behavior for re-signaling as
> > equivalent to #outer
>
> Makes total sense to me.
>
+1 too, it should be fairly easy to implement (just check for nil
signalContext or not in signal)
> Kind regards,
> Jakob
>
More information about the Squeak-dev
mailing list
|