The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
0.20  2006-10-13

- each time <prior> is set to a new rule, it stores the previous 
  rule in a closure, so that subrules can have their own <prior>.
- implemented :c :continue

- several fixes to HsBridge

0.19  2006-09-27

- removed dependency Data::Dump::Streamer (t/01-iterator_engine.t)
- updated Pugs::Runtime::Match pod
- $/{0} === $/[0]
- Match.kv, Match.elems, Match.chars, Match.yaml
- RegexPerl5 accepts parameters  i m s x 
- <! ...> takes a metasyntax expression (not a rule pattern)
- Regex wasn't allowed to match at end of string
- Regex runtime detects infinite loop in <null>+ and fails
- more detailed quantifier parsing;
  added '**{range}' quantifier (needs emitter support)

- HsBridge - implements a Pugs/Haskell-compatible API

[ features available inside v6.pm only ]

- refactored Rule grammar to use shortcuts, such as
    { return { after => :$$<rule>, } }
- fixed '${...}', '$[...]', ':$<...>', '$0'
- fixed coercions in emitter

[ devel (svn.openfoundry.org/pugs/perl5) version only ]

"plain_regex"
- code cleanup; added bug list
- added  ^^ $$ \n \N  - TimToady++
- /./ matches 2-char newline
- <'literal'>
- simple character classes, negated char classes
- ^ $ <null> \s, \S, etc
- <after ...>, <!after ...>, <before ...>, <!before ...>
- non-capturing group, captures, dot

"Pugs::Grammar::RulePure"
  pure-Perl6 version of the Rule grammar;
  this file currently can't be run due to PCR/v6 incompatible 
  calling conventions

0.18  2006-09-21

- implemented capturing to return object with <(...)>
- implemented Matching against non-strings
   my $rule = Pugs::Compiler::Regex->compile( '<.meth("param")>' );
   my $match = $rule->match( $object );
- implemented <at($pos)>
- fixed '^' and '$' in regexes

0.17  2006-09-13

- Grammar::Rule is now bootstrapped with v6.pm, instead of lrep
- implemented $<KEY>
- fixed bool result of quantified terms inside tokens
- fixed parsing of <'>>'>
- replaced 'do{}' with plain function calls in some places (optimization)
- implemented hash dispatch in Grammar::Rule (optimization)

0.16  2006-08-21

- removed Class::InsideOut dependency - 5% speed optimization, but there
  seems to be some gain in RAM usage also
- token <null>

0.15  2006-08-16

- stringification is handled by the 'return object', if it exists.
- fixed '..' in char classes
- ':' is ignored inside tokens
- updated the identifier list in Common.pm

0.11 to 0.14  2006-08-09

- several fixes and optimizations in hash and array interpolation
- fixed capture aliasing

- refactored Regex runtime:
-- reuses the matching string in submatches
-- resues the Match class for Token/Rule
-- more tests
- partially implemented 'static' capture numbering

0.10  2006-07-10

- added Pugs::Runtime::Common - contains utilities shared by all perl 6 
  mini-languages, such as namespace mangling.

0.09  2006-07-06

- 'install()' creates a rule in current namespace - implemented by broquaint
- fixed quoting in emitted :ratchet code
- implemented '<@rules>' in :ratchet mode

0.08  2006-07-04

- clear a warning in Pugs::Grammar::Rule - fixed by audreyt

0.07  2006-07-04

- updated Module::Install

0.06  2006-06-26

- new module Pugs::Grammar::Precedence

0.05  2006-06-13

- fixed internal <alpha> rule

- new module Pugs::Compiler::RegexPerl5 - wraps a perl5 regex into a method that
  returns a Match object. Note that this module doesn't provide backtracking to 
  caller rules.

0.04  2006-05-24

- new modules Pugs::Compiler::Token, Pugs::Compiler::Regex
- fixed Pugs::Compiler::Rule default switches to :ratchet, :sigspace.

- implemented 'sigspace' switch - in :ratchet mode only

0.03  2006-05-20

- '<after ...>' - in :ratchet mode only

- the 'p' switch should now be specified as 'p => 0' instead of 'p => 1'.
  'p => 1' now matches at the second character in the string.
  The default is 'p => undef' - matches anywhere in the string.

- added ':ratchet' switch. 

- implemented parameters in subrule call (named only, constants only)

- '<before ...>', '$'

- new class 'Pugs::Grammar::Category'

- implemented '%hash', but it doesn't use a trie yet.

- fixed subrule backtracking

- fixed method 'perl5'

- Perl 5 emitter character classes (partially) implemented

0.02  2006-03-28

- new method 'perl5', returns a string that can be eval'ed into a new PCR object

- match variables are available inside the rule: $0, $1
- /(.)*/ returns an array in @$0

- built-in rules: alpha, alnum, ...

- fixed grammar bug: '$var := (xxx)' is: '$<var> := (xxx)'

- implemented ':' (untested)

- Added support for Grammar inheritance
- rule methods are internally curryed into functions

  $rule = sub { Grammar->rule_method( @_ ) }

- faster Rule grammar
- Simplified 'match', 'capture' keys in internal Match

0.01 
- Initial CPAN release - Pod, Tests, Packaging by audreyt & others.