[Seaside] Re: Seaside 3.0 Final for Dolphin 6 Available

Philippe Marschall philippe.marschall at gmail.com
Wed Nov 10 20:35:24 UTC 2010


2010/11/10 Sebastian Calvo <fxgallego at gmail.com>:
> Philippe:
>
>> > 4) GRPlatformTest>>testGreaseIntegerOnCharacter
>> >    GRUtf8CodecTest>>testCodecUtf8Bom
>> >    GRUtf8CodecTest>>testCodecUtf8ShortestForm
>>
>> The second one is not so important, at least Pharo and VW don't pass
>> it as well. What's the problem with the first one, does Dolphin return
>> the BOM (U+FEFF)?
>
> Dolphin actually does the encoding using the Windows API wideCharTo...
> multiByteCharTo... and I think that BOM is not handled by the API. I have not
> found info about that.
> For GRPlatformTest>>testGreaseIntegerOnCharacter
> The problem is in the statement previous to the last assert, in
> #decodeUtf8Character:
>
> "SMP (4 byte)"
>        manna := self decodeUtf8Character: #(240 144 140 188 ).
>        self assert: manna greaseInteger = 66364
>
> #decodeUtf8Character: internally executes one additional assert "self assert:
> decoded size = 1" but the decoded size is actually 2 composed by #(U+D800
> U+DF3C). What do you think?

You know, this is why I had so much fun writing these tests ;-). The
problem here is not the BOM but that the win32 API is limited to 16bit
characters. For characters outside the BMP it has to use surrogate
pairs [1] that's why the string has two characters.

We could split the test in two, one for BMP and the other for SMP and
then you would pass the BMP one and fail the SMP one which I believe
would be a fair assessment of the situation.

>> > 5) WADebugErrorHandlerTest>>testMechanismProceed
>> > The mechanism proceed works exactly as the test expects but you have hit
> (IMO) a
>> > Dolphin bug here just in the test case, when using 1/0 to simulate an error.
>> > For this I will post to the Dolphin list too.
>>
>> Does 1 / 0 not signal an error on Dolphin?
>
> :) Yes but two times, you can read about this problem here http://twit.io/2Fk

Ooops, possible VM bug. Could we use something like like:

1 isDispatcher

And for MessageSend there's GRDelayedSend which has the semantics we
need so this shouldn't be a problem.

 [1] http://msdn.microsoft.com/en-us/library/dd374069(VS.85).aspx

Cheers
Philippe


More information about the seaside mailing list