Hi Alexey, Looks like you found a bug in super :) Would you be willing to contribute a snippet for test_vm/dispatch.rb? This is where we keep all these weird cases to make sure we won't forget to fix them. You can run the test using $ ruby test_vm.rb --ruby=../miniruby dispatch And also 1.9 (assuming "ruby19" is in your path) $ ruby test_vm.rb --ruby=ruby19 dispatch Laurent On Aug 31, 2009, at 2:04 PM, Alexey Borzenkov wrote:
On Tue, Sep 1, 2009 at 1:01 AM, Alexey Borzenkov<snaury@gmail.com> wrote:
The following program causes segmentation fault for me with the latest macruby trunk:
class A def somemethod puts "A::somemethod" end end
module B def somemethod super puts "B::somemethod" end end
module C def somemethod super puts "C::somemethod" end end
class D < A include B include C def somemethod super puts "D::somemethod" end end
obj = D.new obj.somemethod
Thanks to http://weblog.rubyonrails.org/2009/8/31/three-reasons-love-responder I just found that modules can be chained via super like that, so I immediately went to check it out, and in MRI 1.8 it works fine. I wanted to see it in 1.9, so I checked with macruby and it caused segmentation fault. I recompiled latest macruby trunk and it's still happening. As stated in the README.rdoc I'm using llvm trunk at revision 72741. Is it llvm or macruby bug? Oddly, under gdb it just freezes, can't even see any stack trace. :-/
Correction: if I printed before calling super I'd see that it causes infinite recursion. Seems like it shouldn't be doing that... _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel