[Ironruby-core] Can't subclass IronRuby libraries ("super" doesn't resolve correctly)

Charles Strahan charles.c.strahan at gmail.com
Sun Aug 1 13:32:54 EDT 2010


Awesome - I just saw that this was marked as fixed on codeplex.

Thanks for taking the time to walk me through debugging this - I'm
going to try it out a little later today.  I would have tried it out
yesterday, but it was bed time on my side of the planet :) (12:10 AM,
CDT).

Btw, sorry for spamming the mailing list - I kept getting bounce back
notifications, despite the fact that each email I sent to the ML shows
up on rubyforge (perhaps because of html formatting?), and I presume
everyone received an email too. Arg...

>>>>Your message
>>>>
>>>> To:      ironruby-core at rubyforge.org
>>>> Subject: [Ironruby-core] Can't subclass IronRuby libraries ("super"
>>>>doesn'tresolve correctly)
>>>> Sent:    Sat, 31 Jul 2010 15:34:00 -0700
>>>>
>>>>did not reach the following recipient(s):



-Charles

On Sun, Aug 1, 2010 at 12:10 AM, Tomas Matousek
<Tomas.Matousek at microsoft.com> wrote:
> Place breakpoint in file SuperCallAction.cs after the call to
>
> method = targetClass.ResolveSuperMethodNoLock(currentMethodName, currentDeclaringModule).InvalidateSitesOnOverride().Info;
>
> this finds the method. You can see that it is a RubyLibraryMethodInfo (i.e. a Ruby method defined in C# library) and has two overloads (MethodBases property)
> {IronRuby.Builtins.RubyIO Reinitialize(IronRuby.Builtins.RubyIO, Int32, IronRuby.Builtins.MutableString)}
> {IronRuby.Builtins.RubyIO Reinitialize(IronRuby.Builtins.RubyIO, Int32, Int32)}
>
> This method is defined in IOOps and expects the first argument to be a file descriptor.
> If we look at File's private instance methods in MRI we see:
>
> irb(main):004:0> File.private_instance_methods(false).sort
> => ["initialize"]
>
> While in IronRuby we get a different result:
>
>>>> File.private_instance_methods(false).sort
> => ["blockdev?", "chardev?", "directory?", "executable?", "executable_real?", "exist?", "exists?", "file?", "grpowned?",
>  "identical?", "owned?", "pipe?", "readable?", "readable_real?", "setgid?", "setuid?", "size", "size?", "socket?", "stic
> ky?", "symlink?", "writable?", "writable_real?", "zero?"]
>
> This means there are two bugs:
> 1) initialize is missing from File
> 2) bunch of private methods shouldn't be there
>
> Have a fix almost ready.
>
> Tomas
>
> -----Original Message-----
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Charles Strahan
> Sent: Saturday, July 31, 2010 3:35 PM
> To: ironruby-core at rubyforge.org
> Subject: [Ironruby-core] Can't subclass IronRuby libraries ("super" doesn't resolve correctly)
>
> I could use some help with Issue #4957
> (http://ironruby.codeplex.com/workitem/4957).
>
> Does anyone know where super class ctors are resolved?  I haven't been able to spot where they are resolved in the code.
>
> -Charles
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>


More information about the Ironruby-core mailing list