tfpt review "/shelveset:YamlRefactoring1;REDMOND\tomat" Comment : Various Yaml related changes: - Integer and Numeric now derives from RubyObject so that a new CLR type is not created when these classes are subclassed. - All classes derived from RubyObject need to implement a deserializing constructor. - If a class in C# library represented a Ruby class and also implemented its methods using RubyMethod attribute the static [RubyMethod] methods were visible on the singleton class of that class. This caused problems with method lookup. This shelveset adds a flag to the class loader that hides all CLR methods from a class that implements a Ruby class (via RubyClass attribute). This fix removes the necessity of splitting of classes into "Ops" and "real classes" artificially (an example of which is YAML::Stream). - Refactors RubyTypeBuilder.DefineConstructors a little bit and fixes problem with constructors taking RubyClass - the generated code was unverifiable (an instruction was missing). - Removes mscorlib dependency from Yaml tests so that they can be run by MRI as well. Tomas -------------- next part -------------- A non-text attachment was scrubbed... Name: YamlRefactoring1.diff Type: application/octet-stream Size: 118334 bytes Desc: YamlRefactoring1.diff URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20081203/306e4e8b/attachment-0001.obj>
Looks great! -- Oleg -----Original Message----- From: Tomas Matousek Sent: Wednesday, December 03, 2008 12:17 PM To: IronRuby External Code Reviewers Cc: ironruby-core at rubyforge.org Subject: Code Review: YamlRefactoring1 tfpt review "/shelveset:YamlRefactoring1;REDMOND\tomat" Comment : Various Yaml related changes: - Integer and Numeric now derives from RubyObject so that a new CLR type is not created when these classes are subclassed. - All classes derived from RubyObject need to implement a deserializing constructor. - If a class in C# library represented a Ruby class and also implemented its methods using RubyMethod attribute the static [RubyMethod] methods were visible on the singleton class of that class. This caused problems with method lookup. This shelveset adds a flag to the class loader that hides all CLR methods from a class that implements a Ruby class (via RubyClass attribute). This fix removes the necessity of splitting of classes into "Ops" and "real classes" artificially (an example of which is YAML::Stream). - Refactors RubyTypeBuilder.DefineConstructors a little bit and fixes problem with constructors taking RubyClass - the generated code was unverifiable (an instruction was missing). - Removes mscorlib dependency from Yaml tests so that they can be run by MRI as well. Tomas