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
on 2010-08-01 00:45
on 2010-08-01 07:28
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
on 2010-08-01 19:49
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@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
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.