Changes for version 0.14 - 2005-04-27

  • Performance tuning release. Played around significantly with _insertr and lex but major improvement will only come about by writing the lexing routine in C.
  • Reordered $Default_Lexer to bring the most common cases to the front of the pattern.
  • Inline the effects of \U, \L, \c, \x. This is handled by _lex_stateful (which offloads some of the worst case lexing costs into a separate routine and thus makes the more usual cases run faster). Handling of \Q in the previous release was incorrect. (Sigh).
  • Backslash slashes.
  • Passed arrays around by reference between _lex and a newly introduced _insertr routine.
  • Silenced warning in _slide_tail (ran/reran)
  • Fixed bug in _slide_tail (didn't handle '0' as a token). One section of the code used to do its own sliding, now it uses _slide_tail.
  • Fixed bug in _node_eq revealed by 5.6.1 (implicit ordering of hash keys).
  • Optimized node_offset()
  • replace ok() in tests by better things (is, like, ...)
  • removed use of Test::Differences, since it doesn't work on complex structures.

Modules

Assemble multiple Regular Expressions into one RE