Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
116 lines (105 sloc) 5.48 KB
=== 0.8.4 / 21dec2009
* 5 Major Enhancements:
* OpNode and related modules are now classes
* parse results are now cached -> substantial speedup on reparse
* moderate performance improvements for regular parser too
* inspect now dumps node trees in more readable tree-like output
* tests now ignore (with a warning) differences in just a :begin node
* 18 Minor Enhancements:
* single code path utility now converts bare => in calls and between [ and ]
* reworked the way ternary rescue is parsed
* new build script & gemspec
* better way to deal with default of :rubyversion parser option
* various fixes to xform_tree! rewriter utility (still doesn't work, tho)
* improvements to constructors to make creating nodes by hand more pleasant
* parser now creates nodes via Node.create
* use AssignmentRhsListStart/EndToken to delimit right hand sides
* lhs* and rhs* should be considered unary ops again
* when parens in assign lhs, treat unary* and single arg like no parens
* VarNode#ident is now kept in a slot, not an ivar
* force body of a block to always be a SequenceNode
* added RedParse::Nodes; include it to get all the redparse node classes
* have each node class remember a list of its slot names
* added aliases and accessors in various nodes to make the api nicer
* moved some utilities into the support libraries where they belong
* slight improvements to parser compiler
* added a version of depthwalk which just visits the Nodes of the tree
* 18 Bugfixes:
* parser now runs under MRI 1.9
* (more?) accurate version of Float#to_s, for 1.8
* minor tweaks to #unparse
* value of () is nil, not false
* get redparse/version.rb relative to current directory from gemspec
* when comparing trees, more insignificant differences are ignored
* Node#deep_copy makes more faithful copies now
* node marshalling should be more reliable
* tweaks to parse_tree support to improve conformance
* support automagicness of integer&regexp in flipflop (in parse_tree output)
* parse_tree's placement of :begin nodes is somewhat better emulated
* always put parse inputs into binary mode
* changed some operators (lhs, rescue3 unary* rhs*) to proper precedence
* numeric literals inserted directly in parsetrees should be autoquoted
* ensure @lhs_parens set in AssignNode when it should be
* make sure ListInNode is extended into arrays added to Nodes via writers
* permit empty symbol LiteralNode to be made
* fixed bad permissions in gem file
* 9 Changes To Tests:
* test Node trees surviving Marshal/Ron round-trip and deep_copy unscathed
* tests for many of the new 1.9 syntax constructions
* parse_tree server process now started in a more portable way
* lots of new test cases
* rp-locatetest now has docs on how to use it
* keep track of problematic files if even the slightest problem occurs
* enable/disable fuzzing with ENV var rather than comments
* make sure inputs are unchanged by parse
* better organized some of the known failing testcases
=== 0.8.3 / 1jul2009
* 7 Minor Enhancements:
* most nodes now have startline, endline, and offset
* Node.[] is more fun to use now (most attributes can be left off)
* a SequenceNode inserted into a SequenceNode now gets inlined
* new ListInNode module for the various vanilla arrays found in node trees
* HashLiteralNode#get; retrieve values from hash literal kinda like from a hash
* Nodes can be catenated with the + operator now
* Symbols inserted into a tree are converted to CallSiteNodes
* 2 Bugfixes:
* more faithful ParseTree emulation in a couple of cases
* minor fixes in node processing for some rare conditions
=== 0.8.2 / 21apr2009
* 14 Minor Enhancements:
* should be no tokens left in Node tree now
* lots of code trying to make things faster (no luck so far)
* declare types and parameters of variation of all inputs
* to_parsetree now outputs 1.8.6 (new default) as well as 1.8.7 tree formats
* #parsetree takes a session arg instead of thread-local variables
* reduce number of warnings/noise in test output
* created #to_parsetree_and_warnings: returns warnings along with a tree
* (for now, no warnings are ever emitted, tho)
* some utilities for working with node trees
* split off rescue operator and begin..end from ParenedNode
* made a VarNode to replace VarNameToken in node trees
* Reg::Repeat#subregs was missing, had to hack one up
* Reg::LookBack/LookAhead#subregs were missing too
* unparse now tracks lines in the original src
* beginnings of support for 1.9 syntax
* 10 Bugfixes:
* don't panic if rubygems not available
* @lvalue is not useful to clients, so ignore it when comparing trees
* many improvements to unparser; most expressions now unparse correctly
* rescue and friends now work in modules, classes and metaclasses
* word array splitter is perfect now
* comma and unary star now have right precedence wrt = in all cases
* fixed miscellaneous minor misparsings
* some of the remaining ParseTree compatibility bugs removed
* string contents are now always left unaltered in Node tree output
* (so escape translation has to be done later, when Nodes are used)
* #to_parsetree of an empty source text should be happier now
=== 0.8.1 / 21apr2009
* 4 Minor Enhancements:
* fixed embarassing permissions problems
* version.rb and History.txt were missing from the release
* I left off the dependancy on reg, oops!
* hacked up tests to ignore sudden problem with extra nils
=== 0.8.0 / 10oct2008
* 1 Major Enhancement:
* Birthday!