After almost a year, I'm pleased to announce that another beta of ruby2c is available. The project stagnated for a bit, but is coming back in force! We've solidified this release by gemifying it, splitting up our tail end translator to convert to either ANSI C or ruby internals C, and making it much more happy with other tool-chains (like our obfuscator).
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.
FEATURES/PROBLEMS:
+ This is a preview release! BETA BETA BETA! Do NOT use this!
+ Please contact me or Eric (drbrain of segment7 dot net) if you:
+ have any feedback!
+ have any changes!
+ want to work on this!
CHANGES:
+ 6 minor enhancements:
+ Split RubyToC to RubyToRubyC and RubyToAnsiC.
+ Extended Environment to be more flexible for various situations.
+ Removed propaganda (bloat) from release.
+ Gemified and reorganized things. Support still needs splitting up.
+ Flipped a lot of internal naming to use Unique.
+ Added ruby_to_c_show (like parse_tree_show).
+ 4(ish) bug fixes:
+ Use ivars instead of cvars so inheritance won't bugger the translator.
+ Corrected unsupported node lists in pipeline.
+ Fixed bugs for splat args, iters, optional args, method name map.
+ Fixed many other bugs.