ruby2c version 1.0.0.6 has been released!
* <http://rubyforge.org/projects/ruby2c/>
* <ryand-ruby@zenspider.com>
* <ruby2c@zenspider.com - mailing list>
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.