ruby2c version 1.0.0.6 has been released!
- http://rubyforge.org/projects/ruby2c/
- [email protected]
- <[email protected] - 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.
- All translate/process methods are gone since we can’t reflect at
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.