Hi Tom, David,

On Mon, Sep 28, 2009 at 11:38 PM, Thomas E Enebo <[email protected]> wrote:
> It appears that they are actually different.  RubyObject has equal?
> for 1.8 and RubyBasicObject has it for 1.9.

So, this seems to be a serious issue with JRuby 1.9, when one of the
fundamental Object methods works incorrectly.
I've filed a critical bug for that:

http://jira.codehaus.org/browse/JRUBY-4016
[1.9] #equal? is incorrect and behaves more like ==

This behavior affects not only Array, but String and other classes as well.

Thanks,
  --Vladimir

>
> -Tom
>
> On Mon, Sep 28, 2009 at 4:34 PM, David Calavera
> <[email protected]> wrote:
>> Yep, everything works fine in 1.8 mode. I'm pretty sure that problem is
>> related with object constructors because the "equal?" method is the same for
>> 1.8 and 1.9 mode.
>> Right now I'm working in the other problem, I've arrived to the jit layer,
>> so I think I'm arriving to an end point because I don't have any idea on how
>> jit works.
>>
>> On Mon, Sep 28, 2009 at 11:26 PM, Vladimir Sizikov <[email protected]>
>> wrote:
>>>
>>> Hi David, folks,
>>>
>>> On Mon, Sep 28, 2009 at 6:00 PM, David Calavera
>>> <[email protected]> wrote:
>>> > Hi,
>>> >
>>> > I've seen some recurrent weird behaviour running specs with 1.9 mode
>>> > that I
>>> > can't fix and perhaps you could give me some clues to resolve it.
>>> >
>>> > Some specs work fine in 1.8 mode, but, although the code is the same for
>>> > 1.9
>>> > mode, they fail in 1.9 mode. I've copied two of them in this gist:
>>> >
>>> > http://gist.github.com/195524
>>>
>>> I looked into the following case:
>>>
>>>    Array#replace replaces the elements with elements from other array
>>> FAILED
>>>    Expected ["a", "b", "c"]
>>>     not to be identical to ["a", "b", "c"]
>>>
>>> Looks like there is a problem in JRuby so that Array.equal? works
>>> incorrectly in 1.9 mode (at least, not like it works in MRI 1.9):
>>>
>>> # jruby --1.9 -ve "puts [1, 2, 3].equal?([1, 2, 3])"
>>> jruby 1.4.0dev (ruby 1.9.2dev trunk 24787) (2009-09-28 b03c7b4) (Java
>>> HotSpot(TM) Client VM 1.6.0_03) [i386-java]
>>> true
>>>
>>> # jruby -ve "p [1, 2, 3].equal?([1, 2, 3])"
>>> jruby 1.4.0dev (ruby 1.8.7 patchlevel 174) (2009-09-28 b03c7b4) (Java
>>> HotSpot(TM) Client VM 1.6.0_03) [i386-java]
>>> false
>>>
>>> # /opt/ruby19-dev/bin/ruby -ve "puts [1, 2, 3].equal?([1, 2, 3])"
>>> ruby 1.9.2dev (2009-09-25) [i686-linux]
>>> false
>>>
>>> # /opt/ruby18-dev/bin/ruby -ve "puts [1, 2, 3].equal?([1, 2, 3])"
>>> ruby 1.8.8dev (2009-09-26) [i686-linux]
>>> false
>>>
>>> As you can see, only JRuby in 1.9 mode returns true. So it seems that
>>> rubyspecs did found a genuine issue in JRuby.
>>>
>>> Thanks,
>>>  --Vladimir
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>    http://xircles.codehaus.org/manage_email
>>>
>>>
>>
>>
>>
>> --
>> David Calavera
>> http://www.thinkincode.net
>>
>
>
>
> --
> blog: http://blog.enebo.com       twitter: tom_enebo
> mail: [email protected]
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to