While waiting for some of the gems related issues to be resolved, I thought I''d expand my test suite to include all the ruby source files required by a broader range of use cases, including: - gems setup.rb - gem install rails - rails myapp - start webrick server and process simple HTTP request This includes over 500 real world ruby source files ... Currently, IronRuby is able to successfully load 214 of those. Note that successfully loading these files doesn''t necessarily mean that all of the semantics are correct, simply that they don''t throw an exception when they are loaded. The remaining 300 odd files currently fail to load for the following reasons: 59 - Loading file paths that contain forward slashes [bug #19841] 47 - ModuleOps.Evaluate not complete 34 - Module::module_function not implemented 33 - Class.new() not implemented [bug #19805] 19 - MemberAssignmentExpression not implemented 17 - Kernel::extend not implemented 16 - to_sym not called on block parameters to convert them to Procs [bug #19714] 12 - Regexp.initialize(String, Fixnum, String) not implemented [bug #19806] 11 - Can''t inherit from Numeric [bug #19804] 5 - nkf library not implemented 5 - yaml library not implemented 4 - fctl library not implemented 4 - Interrupt class not defined 4 - Alias resolution problem [bug #19706] 4 - Syntax error relating to JumpStatements [bug #19803] 3 - Module::module_eval not implemented 2 - Module::extend_object not implemented 2 - Module::undef_method(String) not implemented [bug #19842] 1 - enumerator library not implemented 1 - Dir::glob illegal pattern [bug #19843] 1 - eval doesn''t handle assignment to constants [bug #19844] 1 - Syntax error relating to do blocks [bug #19845] 1 - Kernel::trap not implemented 1 - stringio library not implemented Cheers, Wayne.
Following release of revision 99 and a few of my own minor patches applied, progress is as follows ... Note: I reduced my test suite to only those modules that MRI can independently loading without error - that reduced the total number of test files to 386. Of those, 248 load successfully with IronRuby. The remaining 138 fail to load for the following reasons: 58 - Module::module_function not implemented 24 - Class.new() not implemented [bug #19805] 16 - MemberAssignmentExpression not implemented 12 - Kernel::extend not implemented 6 - to_sym not called on block parameters to convert them to Procs [bug #19714] 4 - Alias resolution problem [bug #19706] 4 - Syntax error relating to JumpStatements [bug #19803] 4 - yaml library not implemented 2 - Codegen bug where last expression in method is a "statement" [bug #19914] 2 - load path problem 1 - eval doesn''t handle assignment to constants [bug #19844] 1 - stringio library not implemented 1 - Module::extend_object not implemented 1 - Kernel::trap not implemented 1 - Regexp.new(Regexp) overload not implemented [bug #19927] It would be great if others could assist with these, with priority given to those at the top of the list. Please let us know if you are or plan to work on any of these functions or issues so that we avoid duplicated effort. These is still a long way to go, but I think we''re making good progress. Cheers, Wayne.
Wayne Kelly:> The remaining 138 fail to load for the following reasons: > > 58 - Module::module_function not implemented > 24 - Class.new() not implemented [bug #19805] > 16 - MemberAssignmentExpression not implemented > 12 - Kernel::extend not implemented > 6 - to_sym not called on block parameters to convert them to Procs > [bug #19714] > 4 - Alias resolution problem [bug #19706] > 4 - Syntax error relating to JumpStatements [bug #19803] > 4 - yaml library not implemented > 2 - Codegen bug where last expression in method is a "statement" [bug > #19914] > 2 - load path problem > 1 - eval doesn''t handle assignment to constants [bug #19844] > 1 - stringio library not implemented > 1 - Module::extend_object not implemented > 1 - Kernel::trap not implemented > 1 - Regexp.new(Regexp) overload not implemented [bug #19927]We''ve made pretty good progress against these today as of r101: module_function is in Class.new, MemberAssignmentExpression, and Kernel#extend are pending Please let us know how many new problems are uncovered by implementing Module#module_function Thanks, -John
> From: John Lam (IRONRUBY) [jflam at microsoft.com] > Sent: Tuesday, 6 May 2008 9:23 AM > To: ironruby-core at rubyforge.org > Subject: Re: [Ironruby-core] Rails progress summary > > We''ve made pretty good progress against these today as of r101: > > module_function is in > > Class.new, MemberAssignmentExpression, and Kernel#extend are pending > > Please let us know how many new problems are uncovered by implementing Module#module_functionAfter applying patches for Kernel#extend, MemberAssignmentExpression and a few other simple methods, the largest remaining cause of failure is due to new bug #19971, closely followed by Class.new not implemented. After that we''re getting fairly "close" to the point where it''s mostly unimplemented native libraries causing failure. Cheers, Wayne.