Issue #11385 has been updated by Joel Low.


Hi Nakada-san:

~~~
D:\> ruby -v
ruby 2.2.3p147 (2015-07-04 revision 51143) [x64-mswin64_120]

D:\> ruby test.rb
test.rb:8:in `==': stack level too deep (SystemStackError)
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:8:in `=='
         ... 2574 levels...
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:8:in `=='
        from test.rb:17:in `<main>'
~~~

It seems to be a problem specific to Windows. The test suite passes (IIRC)

----------------------------------------
Bug #11385: `==` with bidirectional/cyclic dependency
https://bugs.ruby-lang.org/issues/11385#change-53493

* Author: Allen Wang
* Status: Rejected
* Priority: Normal
* Assignee: ruby-core
* ruby -v: 2.2.1
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
```ruby
class Something
  attr_accessor :friend
  def initialize(friend)
    self.friend = friend
  end

  def ==(other)
    friend == other.friend
  end
end


a = Something.new([])
b = Something.new([a])
a.friend = [b]

a == b
```

The above code returns true on OS X and Linux, by right it should give me a exception of stack level too deep.

( And on windows I can see the expected exception )

---Files--------------------------------
test.rb (226 Bytes)


-- 
https://bugs.ruby-lang.org/