After a hack to work around the previous regular expression substitution problem, we continue ... 1) throw exception "Malformed version number" (due to $1 returning nil after a successful match) - fixed my previous Regexp.=== patch to set CurrentMatch in current scope, see attached patch 2) $1 still incorrectly returns nil - fixed trivial index range bug in RubyScope.GetCurrentMatchGroup, see attached patch 3) Wrong number or type of arguments for method "module_eval" - created module_eval aliases for each class_eval method in Builtins.ModuleOps - corrected signatures for overloads that take a code string with file name and line number - implemented these new methods by calling the version that takes code string (and ignoring the other parameters) (see attached patch) 4) Wrong number or type of arguments for method "private" - generalized ModuleOps.SetPrivateVisibility to take param array of obects rather than Symbols and cast them to symbols, see attached patch. - will need to do the same for protected, public and top-level versions of these methods 5) Wrong number or type of arguments for method "define_method" - created overloaded version of define_method that takes method name string and converts it to Symbol, see attached patch. 6) Undefined method "module_function" - not yet implemented in ModuleOps. - this one looks a little tricker, so I''ll leave it to someone with greater knowledge of the IronRuby internals ... Cheers, Wayne. -------------- next part -------------- A non-text attachment was scrubbed... Name: ModuleOps.patch Type: application/octet-stream Size: 4075 bytes Desc: ModuleOps.patch Url : http://rubyforge.org/pipermail/ironruby-core/attachments/20080410/e02da8ca/attachment-0003.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: Reqexp.patch Type: application/octet-stream Size: 801 bytes Desc: Reqexp.patch Url : http://rubyforge.org/pipermail/ironruby-core/attachments/20080410/e02da8ca/attachment-0004.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: RubyScope.patch Type: application/octet-stream Size: 546 bytes Desc: RubyScope.patch Url : http://rubyforge.org/pipermail/ironruby-core/attachments/20080410/e02da8ca/attachment-0005.obj
Wayne Kelly:> After a hack to work around the previous regular expression > substitution problem, we continue ... > > 1) throw exception "Malformed version number" (due to $1 returning > nil after a successful match) > - fixed my previous Regexp.=== patch to set CurrentMatch in > current scope, see attached patch > > 2) $1 still incorrectly returns nil > - fixed trivial index range bug in RubyScope.GetCurrentMatchGroup, > see attached patch > > 3) Wrong number or type of arguments for method "module_eval" > - created module_eval aliases for each class_eval method in > Builtins.ModuleOps > - corrected signatures for overloads that take a code string with > file name and line number > - implemented these new methods by calling the version that takes > code string (and ignoring the other parameters) > (see attached patch) > > 4) Wrong number or type of arguments for method "private" > - generalized ModuleOps.SetPrivateVisibility to take param array > of obects rather than Symbols and cast them to symbols, see attached > patch. > - will need to do the same for protected, public and top-level > versions of these methods > > 5) Wrong number or type of arguments for method "define_method" > - created overloaded version of define_method that takes method > name string and converts it to Symbol, see attached patch. > > 6) Undefined method "module_function" > - not yet implemented in ModuleOps. > - this one looks a little tricker, so I''ll leave it to someone > with greater knowledge of the IronRuby internals ...Thanks for making this stuff happen, Wayne! I''m working on a broad set of changes in the libraries right now. I''ll review and integrate your changes ASAP. Thanks, -John