From: Ryan Davis Date: 2009-06-24T11:36:42+09:00 Subject: [ANN] ruby2c 1.0.0.6 Released ruby2c version 1.0.0.6 has been released! * * * ruby_to_c translates a static ruby subset to C. Hopefully it works. NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE THIS IS BETA SOFTWARE! NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE ! NOTE RubyToC has the following modules: * Rewriter - massages the sexp into a more consistent form. * TypeChecker - type inferencer for the above sexps. * RubyToRubyC - converts a ruby (subset) sexp to ruby interals C. * RubyToAnsiC - converts a ruby (subset) sexp to ANSI C. and the following tools: * translate.rb - Translates a given file to C. Changes: ### 1.0.0.6 / 2009-06-23 1 major enhancement: * Switched from ParseTree to ruby_parser for 1.9 compatibility. woo. * All translate/process methods are gone since we can't reflect at runtime. 43 minor enhancements: * Added IterRewriter for finding free variables in iter nodes. * Added dxstr. * Added lots of new and missing tests * Added not, array, lit_long_negative, lit_range[23], lit_regexp{_n,_once}, lit_sym{,_splat} * Added pct_w tests * Added process_defx to ruby_to_ansi_c.rb * Added test data for array_pct_W, array_pct_W_dstr, attrasgn_index_equals, attrasgn_index_equals_space, and attrset. * Added tests for "and". PONG to eric * Added to_ary and masgn for TypeChecker. * Added xstr support. * Added yield(*ary) * Cleaned up rewriter.rb and made changes for pt_testcase.rb * Cleaned up some free_vars processing code. * Converted everything to new enhanced PTTC test scheme. * Enhanced with_scope to allow for static arrays. * Extended Environment to separately store both types and values. * Extern methods to support rb_iterate, including #each and #each_with_index. * Free var static declarations for C layers. * Merged IterRewriter into CRewriter and make typed. * Migrated as much out of rewriter as possible. * Modernized via hoe. * Moved to full PTTC + UnifiedRuby. * Pulled dstr up from ZenObfuscator. * Pulled up tests, process_args, with_scope, and process_scope from obfuscator * Pushed unique.rb up to PT * Removed Environment methods that pushed up to ruby_parser. * Removed Sexp#sexp_type * Removed accessor, accessor_equals since they don't exist in PTTC. * Removed bin/* * Removed dead test * Removed redundant defn_lvar_boundary, but added call to lvar_def_boundary. * Renamed blocks to extra_methods in ruby_to_ruby_c. * Renamed environment.rb to r2cenvironment.rb (incl tests) * Renamed iter_functions to extra_methods in crewriter. * Reordered so RubyToRubyC was always after RubyToAnsiC. * Some optimizations cleaning up Type#method_missing. Drops test time ~30%. * Split rewriter.rb to crewriter.rb (and renamed class to CRewriter). * Split up and deleted support.rb (and tests). * Switched from makefile to rakefile. * Switched to minitest * Test or node. * Track and trigger changes on pt_testcase.rb and r2ctestcase.rb * Used Hoe#add_include_dirs to clean up rakefile. * 12 bug fixes: * Fix types in iter rewriting. * Fix yield([42, 24]) * Fixed 1.9-isms. * Fixed all rubygems loaders. * Fixed dependencies on all tests. * Fixed for new (incompatible?) Environment supplied by SexpProcessor * Fixed incompatibility with new inline changes. * Fixed requires on ruby_parser * Fixed ruby2c to work with autotest. * Fixed tests in r2ctestcase for all layers except the C layers. * Fixed zentest dependency in rakefile * Fixes for RAD, mostly renaming environment.rb to r2cenvironment.rb at this stage.