Recently in ruby2ruby Category

ruby2ruby provides a means of generating pure ruby code easily from RubyParser compatible Sexps. This makes making dynamic language processors in ruby easier than ever!

Changes:

1.3.1 / 2011-09-22

  • 1 minor enhancement:

    • Added parenthesize to add parens in certain contexts.
  • 10 bug fixes:

    • Add newline to 'do nothing' comment in a block... seems contrived. (andreacampi)
    • Binary operations not work properly with some complex statements. (smorss)
    • Fixed if statements with no body (smorss)
    • Fixed logic for call with hash args in various locations (smorss)
    • Fixed match3 on an assignment. (smorss)
    • Fixed multiple nested rescue/ensure exprs (larsch)
    • Fixed process_alias to parenthesize (smorss)
    • Fixed process_and to parenthenize only when it makes sense.
    • Fixed rescue with 2+ statements in resbody (smorss)
    • Regexps with options other than /o were not showing flags. (smorss)
  • https://github.com/seattlerb/ruby2ruby

ruby2ruby provides a means of generating pure ruby code easily from RubyParser compatible Sexps. This makes making dynamic language processors in ruby easier than ever!

Changes:

1.3.0 / 2011-09-01

ruby2ruby provides a means of generating pure ruby code easily from RubyParser compatible Sexps. This makes making dynamic language processors in ruby easier than ever!

Changes:

1.2.5 / 2010-09-01

  • 4 minor enhancements:

    • Added braces to hash args surrounded if in a binary method call.
    • Added rewrite_resbody to double check structure and freak if necessary.
    • Added stress task
    • rewrite_rescue now detects rescue with multiple arguments.
  • 2 bug fixes:

    • Fixed dstr/dregex/d* roundtripping problem
    • Fixed up call arg processing to be more correct and to work with the new sexp form
  • http://seattlerb.rubyforge.org/

  • http://rubyforge.org/projects/seattlerb

ruby2ruby provides a means of generating pure ruby code easily from RubyParser compatible Sexps. This makes making dynamic language processors in ruby easier than ever!

Changes:

1.2.4 / 2009-08-14

ruby2ruby provides a means of generating pure ruby code easily from ParseTree's Sexps. This makes making dynamic language processors much easier in ruby than ever before.

Changes:

1.2.3 / 2009-06-23

ParseTree EOL

| | Comments (4)

There seems to be some confusion and/or panic about ParseTree that I'd like to clear up:

ParseTree is dead on ruby 1.9 and there is no plan to make it work.

Because of changes to internals in 1.9, ParseTree simply can not work. I asked for hooks/options to allow us to get to the information but they never arrived.

Specifically if you're using ParseTree to access the AST of a live method/block/proc, you're SOL. If you're just using ParseTree to do static analysis, then you can switch to ruby_parser in about a minute of work and you're good to go.

Here is the plan for my projects:

  • RubyToC-1.0.0.5 = switching to ruby_parser
  • flog-2.1.0 = switching to ruby_parser
  • heckle-1.4.2 = dead, unless we can think of something soon.
  • ruby2ruby-1.2.2 = dropping block/proc support.
  • ruby_parser-2.0.2 = no clue why it has a dependency still, no worries here.
  • ZenHacks-1.0.1 = dropping block/proc support -- not that I support this.

I don't know the status of most of the projects dependent on PT or how they're going to deal with this issue. If you use one of these projects directly or indirectly and that project relies on PT for live method/block/proc, then you're probably going to be stuck on 1.8 for a while:

  • SuperCaller-1.0.0 = unsupported - can drop live method support
  • ambition-0.5.4
  • argible-0.1.1
  • integrity-0.1.9.3
  • merb-action-args-1.0.11
  • nitpick-1.0.2
  • protocol-0.8.1
  • red-4.1.7
  • reek-1.0.0 = probably doesn't need live analysis
  • roodi-1.3.5
  • ruby_diff-0.2
  • rubyjs-0.8.0
  • sake-1.0.15
  • thorero-action-args-0.9.4

There are probably other projects out there dependent on PT that I don't know about. All I've listed here are rubyforge gems that depend on PT in their gemspec.

You can check your gems using this:

gem list | egrep "(ambition|argible|integrity|merb-action-args|nitpick|protocol|red|reek|roodi|ruby_diff|rubyjs|sake|thorero-action-args)"

ruby2ruby provides a means of generating pure ruby code easily from ParseTree's Sexps. This makes making dynamic language processors much easier in ruby than ever before.

Changes:

1.2.2 / 2009-01-20

  • 3 minor enhancements:

    • Added -s to display sexp before printing r2r
    • Added a bunch of backslash and masgn tests.
    • Refactored tests.
  • 4 bug fixes:

    • Fixed iters to deal with empty bodies.
    • Fixed process_call for a number of cases incl [], []=, and args processing.
    • Fixed process_hash to always generate braces if in arglist.
    • Switched process_alias to producing alias again, needed for globals.
  • http://seattlerb.rubyforge.org/

  • http://rubyforge.org/projects/seattlerb

Gauntlet Kicks Ass

| | Comments (0)
% gauntlet report parsetree
 47369 93.73% good
  2011  3.98% bad
  1160  2.30% skip
...
% gauntlet parse_tree
...
keyword_prospector-0.8.1
  setup.rb: good
  ALL GOOD!
kickstart-0.2.2.1
  lib/extentions/array.rb: good
  lib/extentions/class.rb: bad
KirbyBase-2.6
  lib/kirbybase.rb: bad
...

the fact that I can incrementally fix something and then run it against the known failures makes doing compatibility work via gauntlet pure joy. I've been using gauntlet to compare parsetree to rubyparser and to do round trips between rubyparser and ruby2ruby. It's finding _a lot of stuff for me to work on.

ruby2ruby provides a means of generating pure ruby code easily from ParseTree's Sexps. This makes making dynamic language processors much easier in ruby than ever before.

Changes:

1.2.1 / 2008-11-04

About this Archive

This page is a archive of recent entries in the ruby2ruby category.

Ruby2C is the previous category.

ruby_parser is the next category.

Find recent content on the main index or look in the archives to find all content.

Pages

Powered by Movable Type 4.32-en