Skip to content

Latest commit

 

History

History
457 lines (282 loc) · 11.7 KB

History.rdoc

File metadata and controls

457 lines (282 loc) · 11.7 KB

2.5.1 / 2024-07-08

  • 1 bug fix:

    • Fix errors created when string literals are frozen. (byroot + zenspider)

2.5.0 / 2022-10-04

  • 5 minor enhancements:

    • Added support for (most?) pattern matching.

    • Added support for **kwrest.

    • Added support for forward args (…), defn and call.

    • Added support for preexe (BEGIN { … }).

    • Support ruby 3.1 hash shorthand syntax. (presidentbeef)

  • 3 bug fixes:

    • Fix generation of case w/ no else.

    • Fixed a bug block shadow vars (they’re grouped)

    • Fixed find_pat up (after fixing a find_pat bug in ruby_parser).

2.4.4 / 2019-09-24

  • 1 bug fix:

    • Fixed deprecation warnings from patterns change in sexp_processor.

2.4.3 / 2019-06-03

  • 4 bug fixes:

    • Added shadow block args. (jaynetics)

    • Fixed generation for block args w/ trailing commas.

    • Fixed nested masgn block args and arrays. (jaynetics)

    • Fixes for stabby proc / lambda changes.

2.4.2 / 2019-03-12

  • 2 bug fixes:

    • Rewrote process_masgn to fix problems with nesting masgn in block args.

    • Use RubyParser directly instead of versioned parsers.

2.4.1 / 2018-02-15

  • 2 minor enhancements:

    • Added bitwise ops to BINARY. (david942j)

    • Added rewrite_call|if|until|while to normalize ‘not` in conditions.

2.4.0 / 2017-07-17

  • 1 major enhancement:

    • Major overhaul. Process methods no longer mutate arguments.

  • 1 minor enhancement:

    • Now SEXP_STRICT=1 clean.

  • 2 bug fixes:

    • Fixed 2.4 Fixnum deprecation warning

    • Fixed for new 24 parser.

2.3.2 / 2016-11-30

  • 5 bug fixes:

    • FINALLY fixed a problem with escaping in dstrs. (nex3)

    • Fix using match3 on LHS of call. (eqv)

    • Fixed handling defn that starts w/ begin+rescue+other stuff. (eqv)

    • Fixed return expressions with complex RHS. (eqv)

    • Tweaked sexp_processor dependency to ~> 4.6 to sync them better

2.3.1 / 2016-10-09

  • 1 minor enhancement:

    • Support more op_asgn nodes. (presidentbeef)

  • 1 bug fix:

    • Fix for non-binary ‘binary’ calls (eg arity > 1). (presidentbeef)

2.3.0 / 2016-02-18

  • 3 minor enhancements:

    • Added support for safe navigation/lonely operator. (presidentbeef)

    • Expanded tests for 2.3 support

    • Support safe attrasgn. (presidentbeef).

2.2.0 / 2015-05-27

  • 1 minor enhancement:

    • Normalized block arg goalposts (always there unless arg slot == 0).

2.1.4 / 2015-04-13

  • 1 minor enhancement:

    • Wrap fewer hash values in parentheses. (jaredbeck)

  • 1 bug fix:

    • Fixed handling of kwsplat args.

2.1.3 / 2014-09-26

  • 1 bug fix:

    • Fixed handling of kwargs. (joenas)

2.1.2 / 2014-08-28

  • 1 bug fix:

    • Fixed readme to point out that deep_clone may be needed. (heathd)

2.1.1 / 2014-06-09

  • 1 bug fix:

    • Moved Regexp::CODES out of guard on ::ENC_NONE. (presidentbeef)

2.1.0 / 2014-04-23

  • 4 minor enhancements:

    • Don’t indent defn body extra if it has a top-level rescue.

    • Don’t indent defn body until fully processed.

    • Don’t use simple rescue form if resbody is a return (statement keyword). (eyberg)

    • Remove superfluous begin/end for top-level defn rescue.

2.0.8 / 2014-03-24

  • 1 bug fix:

    • 2.0/2.1: Fixed support for **kwsplat. (troessner)

2.0.7 / 2013-12-13

  • 4 minor enhancements:

    • Add != to list of binary operators. (camertron) *le sigh*

    • Clean out cruft from process_masgn that I can’t reproduce anymore.

    • Extend process_args to deal with masgn (eg: a.b { |(c, d)| … }).

    • Extend process_masgn to deal with both sexps and var lists.

  • 1 bug fix:

    • Ensure proper parens on rescue subexpressions. (Bocete)

2.0.6 / 2013-06-20

  • 2 bug fixes:

    • Fixed bug with complex rescue but short enough to trigger 1-liner. (Confusion)

    • Fixed multiple expressions inside sclass

2.0.5 / 2013-04-25

  • 2 bug fixes:

    • Fixed attrasgn w/ multiple keys: a[x, y] = z. (derula)

    • Fixed error w/ attr_* detection when more than 1 ivar/iasgn exist in body.

2.0.4 / 2013-03-28

  • 1 bug fix:

    • Fixed attr_* generators in cases where the body isn’t idiomatic. (robertfeldt)

2.0.3 / 2013-02-07

  • 2 minor enhancements:

    • 1.9: Added support for ! call to go back to (not …).

    • 2nd and 3rd order testing now uses RubyPraser.for_current_ruby for maximal carnage.

  • 1 bug fix:

    • On failure (eg ruby 2.0), fall back to compound RubyParser instance for 2nd & 3rd order testing

2.0.2 / 2013-01-16

  • 1 minor enhancement:

    • Updated to ruby_parser 3.1 and up

2.0.1 / 2012-11-02

  • 1 bug fix:

    • Fixed dependency on alpha ruby_parser. sigh

2.0.0 / 2012-11-02

  • 1 minor enhancement:

    • Only do phase 1 testing if $SIMPLE=1.

  • 1 bug fix:

    • Fixed block args processing for RP 3.0 sexp changes

2.0.0.b1 / 2012-07-27

  • 4 major enhancements:

    • Made it work without arglist in call.

    • Made it work without scope/block in class/module/defn/defs.

    • Removed block from resbody

    • Removed block from when node

  • 4 minor enhancements:

    • Added debug task to help isolate an error

    • Empty hash is now a proper {}

    • Refactored and added finish method.

    • Switched to new Ruby18Parser to avoid deprecation warnings

  • 4 bug fixes:

    • Fixed call with empty hash arg. (neilconway)

    • OMG WTF… removed long decrepit ParseTree dependency

    • Removed isolate/rake require to reduce minimum bootstrap to hoe + rake + rake install_plugins (*2)

    • Skip 1.9 tests for now.

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)

1.3.0 / 2011-09-01

  • 1 minor enhancement:

    • output comments for class and method definitions. (pythonic)

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

1.2.4 / 2009-08-14

  • 2 bug fixes:

    • Fixed all doco to use ruby_praser

    • Fixed bin/r2r_show to use ruby_parser. oops

1.2.3 / 2009-06-23

  • 4 minor enhancements:

    • Overhauled 4-generation tests to use RubyParser. Much cleaner

    • Removed last of ParseTree. Fully switched to RubyParser.

    • Switched to minitest

    • Updated Rakefile to new hoe capabilities

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.

1.2.1 / 2008-11-04

  • 1 bug fix:

    • Don’t freak out and die if passed a c function defn. stupid rails.

1.2.0 / 2008-10-22

  • 2 minor enhancements:

    • Removed all PT dependent code to PT project (see parse_tree_extensions.rb).

    • Revamped. Got working with new unified ruby output. Much much cleaner.

1.1.9 / 2008-06-09

  • 5 minor enhancements:

    • Added more defensive programming in the tests to make it work with 1.9 and rubinius better.

    • Converted r2r_show to more plain parse style, no more discover_new_classes.

    • Made Proc#to_sexp and #to_ruby more resiliant.

    • Started to work on fallback to ruby_parser code. Should prolly do flog first.

    • Updated rakefile and readme format for hoe. Much cleaner!

  • 6 bug fixes:

    • Added 1.9 fixes.

    • Added code to tests to isolate rubyinline builds.

    • Fixed miniunit-deprecated assertions

    • Fixes for const2/3, esp in class names

    • Renamed ProcStoreTmp#name to #new_name. dur.

    • Skip proc tests in 1.9 since they require ParseTree.

1.1.8 / 2007-08-21

  • 6 minor enhancements:

    • Added super awesome .autotest file. YAY!

    • Removed nil.method_missing… too many ppl bitching about it.

    • Renamed RubyToRuby (the class name) to Ruby2Ruby.

    • Restructured self-translation tests so they were friendlier when dying.

    • Strings are now always one line long only.

    • Fully in sync with ParseTree and ruby_parser.

  • 2 bug fixes:

    • Fixed a number of issues/bugs discovered via ruby_parser.

    • Cleaned out some dead code and hacks we don’t need anymore.

1.1.7 / 2007-08-21

  • 2 major enhancements:

    • Switched to ParseTree’s UnifiedRuby… much much cleaner now!

    • Made test_ruby2ruby MUCH more rigorous with circular testing.

  • 5 minor enhancements:

    • Add r2r_show command like parse_tree_show.

    • Add parens for :block nodes as appropriate. May be overzealous.

    • Make SexpAny work with #==.

    • Removed calls to processor_stack / caller in favor of self.context.

    • Some style differences, eschew rescue.

  • 6 bug fixes:

    • Fix R2R bug with masgn/argscat.

    • Fixed a bug with new resbody unification.

    • Fixes for changes to pt_testcase.

    • Fixes the rest of the tests under strict sexp checking.

    • Fixed some circular bugs, mostly by hacking them out, wrt operator precidence.

    • Fixed trinary operator.

1.1.6 / 2007-06-05

  • 2 minor enhancements:

    • Extended tests for dstr/dsym/drgx to test against embedded slashes and quotes.

    • Updated for dasgn_curr changes to PT.

  • 2 bug fixes:

    • Fixed a bug with begin/rescue/ensure.

    • Fixed argscat and blockpass bug. blah(42, *args, &block) handled.

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 block_pass working.

    • Fixed block_pass 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.

1.1.4 / 2007-01-15

  • 4 minor enhancements:

    • Added some extra rewriting code and tests for various bmethods. Ugh.

    • Added support for splatted block args.

    • Refactored class/module and dsym/dstr.

    • Short if/unless statements are now post-conditional expressions.

  • 4 bug fixes:

    • Finally fixed eric’s nebulous proc code-in-goalposts bug.

    • Fixed dasgn_curr so block’s dasgn vars decl goes away (bug 7420).

    • Fixed dmethod. I think the tests were bogus before.

    • Fixed improper end in method rescues (bug 7396).

1.1.3 / 2006-12-20

  • 1 minor enhancement

    • Unit tests do self-translation and retesting for 3 generations! Solid. BAM!

  • 1 bug fixes

    • iasgn inside masgn was totally borked in ruby2ruby.

1.1.2 / 2006-12-19

  • 2 minor enhancements

    • Improved []= and [] to be more idiomatic.

    • Support for nested whens (from when case has no expression).

  • 3 bug fixes

    • Fixed case output when there is no case expression.

    • NEARLY have RubyToRuby self-cloning and passing tests again.

    • Minor cleanup

1.1.1 / 2006-11-13

  • 3 bug fixes

    • Fixed procs

    • Cleaned return when no return values.

    • Rewrote process_if. No more elsif but no more bugs. :)

1.1.0 / 2006-10-11

  • 2 major enhancements

    • Released separately from ZenHacks.

    • Major overhaul/audit from the new ParseTree test infrastructure. Very complete now.