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
