[MacRuby-devel] Segmentation fault for classes with multiple modules chained with super

Laurent Sansonetti lsansonetti at apple.com
Mon Aug 31 14:12:06 PDT 2009


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 at 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 at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list