When are 2 CompiledMethods = [incl: Float>>nan]
Klaus D. Witzel
klaus.witzel at cobss.com
Sat Sep 8 17:00:18 UTC 2007
Hi,
Math and I discuss comparing two CompiledMethods whether or not they
represent the same object when compiled from source. This is necessary for
writing tests for the Decompiler.
One of the obstacles are certainly the methods' literals, in particular
Float>>#nan which have to be treated equal in the two compared methods,
regardless of the fact that (Float nan = Float nan) == false :)
Are there other cases which should be considered, for example does someone
expect that Float>>#closeTo: is used for comparing Float literals of two
methods? If that's not the case then Float literals other than nan, can be
compared with good old fashioned #=.
FWIW the two methods could have been compiled by different compilers
and/or have literals (for example in class vars) created by different
readers (think of Number#>>readFrom:), makes writing tests for the
Decompiler not that easy :|
TIA.
/Klaus
On Sat, 08 Sep 2007 17:30:37 +0200, Alejandro F. Reimondo wrote:
>
>> Ok any reason for that?
> Yes. "nan" is not an object (it does not preserve identity),
> it is something that can be named and that preserve
> behavior (we can draw/attach an interface for/to it),
> those properties does not make it an object.
>
> Ale.
>
>
>
> ----- Original Message ----- From: "Mathieu Suen" <mathk.sue at gmail.com>
> To: "The general-purpose Squeak developers list"
> <squeak-dev at lists.squeakfoundation.org>
> Sent: Saturday, September 08, 2007 9:48 AM
> Subject: Re: Float>>nan
>
>
>> Ok any reason for that?
>>
>> Mth
>>
>>
>>
>> On Sep 8, 2007, at 12:24 PM, Lukas Renggli wrote:
>>
>>>> I have a strange bug:
>>>>
>>>> Float nan = Float nan -> false
>>>
>>> According to the standard NaN is not be equal to anything, including
>>> itself.
>>>
>>> Check: http://en.wikipedia.org/wiki/IEEE_754
>>>
>>> Lukas
>>>
>>> -- Lukas Renggli
>>> http://www.lukas-renggli.ch
>>>
>>
>>
>
>
>
More information about the Squeak-dev
mailing list
|