<shrug> It works on all the platforms with little effort so I don't see a problem with it. But it is kind of "tricky" and as I said when we discussed it yesterday, I don't really care. Obviously it could be implemented by simply catching Exception and then passing any exception you don't actually want to handle. Less elegant, but probably easier for people to get their heads around. :)<br>
<br>Julian<br><br><div class="gmail_quote">On Wed, Feb 4, 2009 at 7:35 AM, Lukas Renggli <span dir="ltr"><<a href="mailto:renggli@gmail.com">renggli@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I am actually all in favor of removing that trick. It saves code in<br>
Pharo as well as many extension methods on other platforms.<br>
<br>
It stretches the ANSI standard, that does not talk about implementing<br>
your own exception classes. I don't think this is worth the trouble.<br>
<br>
Cheers,<br>
Lukas<br>
<div><div></div><div class="Wj3C7c"><br>
On Wed, Feb 4, 2009 at 1:38 AM, James Foster <<a href="mailto:Smalltalk@jgfoster.net">Smalltalk@jgfoster.net</a>> wrote:<br>
> Just to provide some closure on this issue, Seaside-GemStone-Core adds three<br>
> methods to WAExceptionHandler and it seems to work fine.<br>
><br>
> James<br>
><br>
> On Jan 6, 2009, at 11:07 AM, Julian Fitzell wrote:<br>
><br>
>> Oh, cool. Was it difficult to get working?<br>
>><br>
>> The ANSI standard is confusing and ambiguous in places so it's not<br>
>> surprising that implementations still vary. The fact that all the<br>
>> implementations seem to require some modifications to make this work<br>
>> shows, if nothing else, that nobody else is implementing their own<br>
>> Exception Selectors, though. :)<br>
>><br>
>> I just tried a simple test on GemStone and it looks like they will<br>
>> have to implement #try:on:do: at the moment to make it work. Though,<br>
>> from a quick glance, they may be able to tweak things so only the ANSI<br>
>> ExceptionSelector protocol is necessary.<br>
>><br>
>> Julian<br>
>><br>
>> On Tue, Jan 6, 2009 at 7:02 PM, John O'Keefe<br>
>> <<a href="mailto:wembley.instantiations@gmail.com">wembley.instantiations@gmail.com</a>> wrote:<br>
>>><br>
>>> Julian -<br>
>>> OK, it now works on VA Smalltalk -- at least the SUnit tests think so :-)<br>
>>> You are right that many of us implementors of ANSI don't always get it<br>
>>> correct. Clearly the standard separates the idea of an<br>
>>> <exceptionSelector><br>
>>> from the various other exception protocols.<br>
>>> John O'Keefe [|], Principal Smalltalk Architect, Instantiations Inc.<br>
>>><br>
>>><br>
>>> On Thu, Jan 1, 2009 at 9:33 AM, Julian Fitzell <<a href="mailto:jfitzell@gmail.com">jfitzell@gmail.com</a>><br>
>>> wrote:<br>
>>>><br>
>>>> Hi John,<br>
>>>><br>
>>>> Darn... I was following the ANSI standard... ;) it says that an<br>
>>>> exception selector needs to implement #handles: and #, which we do on<br>
>>>> both the class and instance side. On most systems this would include<br>
>>>> the Exception class and instances of ExceptionSet. How does VA<br>
>>>> implement ExceptionSet if #on:do: is so restrictive?<br>
>>>><br>
>>>> Lukas took a quick look at his VA image and says it looks like<br>
>>>> WAExceptionHandler might just need an implementation of #handles:do:<br>
>>>> added in the VA port but I don't have a Windows install handy to look<br>
>>>> myself. I added some tests in Seaside-Tests-Core-jf.32 that should<br>
>>>> help verify directly if it's working or not, though.<br>
>>>><br>
>>>> Do you think it's a solvable problem on VA? I just looked at VW and it<br>
>>>> looks like they would need to implement #isExceptionHandler in their<br>
>>>> compatibility package.<br>
>>>><br>
>>>> Dale, I haven't got Gemstone installed on this new laptop yet either.<br>
>>>> Do you foresee problems getting this to work on your end?<br>
>>>><br>
>>>> Obviously if this is going to be a huge compatibility problem we<br>
>>>> should rethink but I think the implementation is cleaner this way<br>
>>>> otherwise.<br>
>>>><br>
>>>> Julian<br>
>>>><br>
>>>> On Wed, Dec 31, 2008 at 8:28 PM, John O'Keefe<br>
>>>> <<a href="mailto:wembley.instantiations@gmail.com">wembley.instantiations@gmail.com</a>> wrote:<br>
>>>>><br>
>>>>> Julian -<br>
>>>>> I'm back to work after a week and got a bad surprise.<br>
>>>>> Seaside-Core-jf.349 and the associated changes to other packages has<br>
>>>>> completely broken the VA Smalltalk port. Our implementation of<br>
>>>>> Block>>#on:do: expects a class as its first argument (and in<br>
>>>>> particular,<br>
>>>>> the<br>
>>>>> class must be Exception or a subclass of Exception). The same seems to<br>
>>>>> be<br>
>>>>> true of VW.<br>
>>>>><br>
>>>>> But with Seaside-Core-jf.349 #on:do: is getting a WAExceptionHandler<br>
>>>>> class<br>
>>>>> (or subclass of it) as the first argument <exception selector> and then<br>
>>>>> with<br>
>>>>> Seaside-Core-jf.353 #on:do: is getting an instance of<br>
>>>>> WAExceptionHandler<br>
>>>>> (or<br>
>>>>> a subclass of it) as the first argument. In either case, we fall over<br>
>>>>> because the WAExceptionHandler class/instance does not understand any<br>
>>>>> of<br>
>>>>> the<br>
>>>>> messages sent by #on:do: to the <exception selector>.<br>
>>>>> Since WAExceptionHandler is in the base, I assume it should be<br>
>>>>> portable.<br>
>>>>> I have reverted to Seaside-Core-lr.348 and Seaside-Development-lr.53<br>
>>>>> for<br>
>>>>> the<br>
>>>>> time being and things seem to be working OK again.<br>
>>>>> John O'Keefe [|], Principal Smalltalk Architect, Instantiations Inc.<br>
>>>><br>
>>>> _______________________________________________<br>
>>>> seaside-dev mailing list<br>
>>>> <a href="mailto:seaside-dev@lists.squeakfoundation.org">seaside-dev@lists.squeakfoundation.org</a><br>
>>>> <a href="http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev</a><br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> seaside-dev mailing list<br>
>>> <a href="mailto:seaside-dev@lists.squeakfoundation.org">seaside-dev@lists.squeakfoundation.org</a><br>
>>> <a href="http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev</a><br>
>>><br>
>>><br>
>> _______________________________________________<br>
>> seaside-dev mailing list<br>
>> <a href="mailto:seaside-dev@lists.squeakfoundation.org">seaside-dev@lists.squeakfoundation.org</a><br>
>> <a href="http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev</a><br>
>><br>
><br>
> _______________________________________________<br>
> seaside-dev mailing list<br>
> <a href="mailto:seaside-dev@lists.squeakfoundation.org">seaside-dev@lists.squeakfoundation.org</a><br>
> <a href="http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev</a><br>
><br>
<br>
<br>
<br>
</div></div><font color="#888888">--<br>
Lukas Renggli<br>
<a href="http://www.lukas-renggli.ch" target="_blank">http://www.lukas-renggli.ch</a><br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<br>
seaside-dev mailing list<br>
<a href="mailto:seaside-dev@lists.squeakfoundation.org">seaside-dev@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev</a><br>
</div></div></blockquote></div><br>