ParseTree: February 2007 Archives

(to try to make up for the previous rant)

I've been making big fundamental changes to ParseTree and consequently ruby2c's implementation and testing. As a result, I'm drowning in hundreds of failures (869 tests, 2217 assertions, 238 failures, 193 errors). Even though they run fairly fast, autotest isn't much help at this stage, so I resorted to (*gulp*) manual test runs, but with a small twist:

ruby test/test_type_checker.rb -n "/test_[a-b]/" | unit_diff

This lets me focus on one class, with only about 10 or so failures/errors at a time to keep the clutter down. As my favorite mgr used to say:

"Big alligators, Little alligators, Swamp."

With this technique, I work from the bottom up and slowly wade through and eventually drain the swamp.

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.1.5 / 2007-02-13

  • 3 minor enhancements:
    • Can now heckle ActiveRecord::Base in full.
    • Cleaned up 1-liner generating code.
    • Made clean/simple rescues 1-liners.
  • 7 bug fixes:
    • Finally got the rest of blockpass working.
    • Fixed blockpass on procs in iters. UGH!
    • Fixed attrasgn in masgn.
    • Fixed splat in masgn.
    • Fixed unary/prefix methods.
    • Fixed attrasgn for []= where there were multiple args inside [].
    • Fixed a couple resbody bugs.

ParseTree is a C extension (using RubyInline) that extracts the parse tree for an entire class or a specific method and returns it as a s-expression (aka sexp) using ruby's arrays, strings, symbols, and integers.

Changes:

  • 2 major enhancements:
    • rewrite extracted and intended to be run before (or in front of) process.
    • rewrite is now recursive as well, so children rewritings should be done independently of their parents. This should make complex rewriting layers much cleaner and allow me to eventually collect and publish a single "standard" rewriting layer.
  • 1 minor enhancement:
    • Iters are now {} if short and one line. YAY!
  • 1 bug fix:
    • Added test cases brought out by ruby2ruby/heckle.

About this Archive

This page is a archive of entries in the ParseTree category from February 2007.

ParseTree: January 2007 is the previous archive.

ParseTree: March 2007 is the next archive.

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

Pages

Powered by Movable Type 4.1