# Copyright 2015 Jeffrey Kegler
# This file is part of Marpa::R2.  Marpa::R2 is free software: you can
# redistribute it and/or modify it under the terms of the GNU Lesser
# General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# Marpa::R2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser
# General Public License along with Marpa::R2.  If not, see
# http://www.gnu.org/licenses/.

Revision history for Marpa::R2

4.000000 (libmarpa 8.6.0) Mon Mar 13 16:02:45 PDT 2017

   * Bug fix: progress reports had both missing and
     spurious Earley items. Problematic Earley items
     were incomplete items with at least one proper
     nullable. Incomplete items are those whose dot
     is not at the end of the rule. Proper nullables
     are symbols which are nullable but not nulling.
     Problematic items were obscure enough so that no
     user ever noticed the issue -- it was discovered
     in a code review.  But it is now fixed.

   * Bug fix: Unicode in DSL scripts now works correctly.

3.000000 (libmarpa 8.3.0) Sat May  9 21:52:49 PDT 2015

   * Fix bug: blessed per-parse argument to $recce->value()
     was not being passed directly to parse.

2.104000 (libmarpa 8.3.0) Sat Mar  7 17:43:00 PST 2015

   * Added Discard events

   * Added g1start, g1length array descriptor items

   * Added 'event_is_active' SLIF recce named argument

   * Added event initializers

   * New Libmarpa version, with MIT license

   * Factored SLIF code out of Libmarpa

2.102000 (libmarpa 7.5.0) Fri Jan  9 17:04:27 PST 2015

   * Fixes to documentation and diagnostics

2.100000 (libmarpa 7.2.0) Mon Nov 17 16:50:19 PST 2014

   * Documentation updates, fixes.

2.098000 (libmarpa 7.2.0) Wed Oct 29 18:05:50 PDT 2014

   * Exhaustion, rejection events; on-the-fly
     re-prioritization of lexemes.

2.096000 (libmarpa 7.0.3) Fri Oct  3 09:05:22 PDT 2014

   * Improve SLIF parse event documentation.

2.094000 (libmarpa 7.0.3) Tue Sep 16 18:57:54 PDT 2014

   * Add $slg->parse() and $slr->ambiguous() methods.

   * Add Andriod and improve Cygwin portability.

   * Minor bugs and typos.

2.092000 (libmarpa 7.0.3) Wed Sep 10 18:09:04 PDT 2014

   * Fix bug -- some duplicate SLIF events occurred
     when external scanning was used.

2.090000 (libmarpa 7.0.3) Mon Aug 11 18:39:00 PDT 2014

   * Fix bug in progress reports.  The start of a rule
     was reported wrong for some left recursions.

2.088000 (libmarpa 7.0.2) Thu Jul 10 10:04:02 PDT 2014

   * Separated out Libmarpa

   * New build procedure.

2.086000 (libmarpa 6.1.0) Sat May 31 16:25:53 PDT 2014

   * Explicit core module dependencies

   * Support use of Marpa::R2 to test external shared libraries

   * Deprecate unvalued symbols in Libmarpa

   * Add marpa_g_force_valued() method

   * New libmarpa versioning

2.084000 Wed Apr  2 08:25:09 PDT 2014

   * No longer require "long long int".

   * Update examples to use LATM.

   * Speed up LATM.

2.082000 Thu Feb 27 15:43:33 PST 2014

   * Added new array descriptor elements: "name", "symbol", "lhs".

   * Added ability to change treatment of inaccessibles.

   * Documented of SLIF's use of ambiguity in its own DSL.

   * Added "name" adverb for rules.

2.080000 Mon Feb 17 17:13:28 PST 2014

   * Rewrote the parse engine.

   * Added longest acceptable tokens matching (aka LATM,
     aka "forgiving tokens")

2.078000 Wed Dec 25 08:38:49 PST 2013

   * Allow Unicode in SLIF DSL source

   * New high-level ASF interface -- still alpha

2.076000 Wed Nov 20 16:22:56 PST 2013

   * SLIF start rule is now optional.

   * SLIF character classes and strings
     can be case-insensitive.

2.074000 Tue Oct 29 20:21:57 PDT 2013

   * Minor Bug fixes in SLIF

2.072000 Wed Oct 23 17:26:49 PDT 2013

   * Minor fix to error messages

2.070000 Sun Sep  8 17:52:17 PDT 2013

   * Semantics docs updated for SLIF.  It is now possible to become a Marpa::R2
     expert without learning anything about its original interface, the NAIF.

   * Per-parse arg can now be specified explicitly as arg
     of $slr->value().

   * Added semantics_package named argument to SLIF recognizer.

   * Fix bug: unproductive symbol in G0 sequence was causing SEGV
     instead of diagnostic.

   * Fix SLIF bug when using default action with null parse --
     default action was not being called, it now is.

2.068000 Thu Aug 22 19:13:34 PDT 2013

   * Better debugging and tracing for SLIF,
     and better documentation for it.

   * Fix bug discovered by Jean-Damien Durand --
     discarding lexemes should take precedence over rejecting
     them.

   * Various documentaion fixes

2.066000 Fri Aug  2 17:34:47 PDT 2013

   * Fix SLIF memory leak; fix for Perl 5.19.3

2.064000 Thu Jul 11 09:10:54 PDT 2013

   * Fix bug in return value of lexeme_read();
     Fix SEGV when terminal symbol is unused.

2.062000 Tue Jul  2 08:23:53 PDT 2013

   * Added SLIF expected_terminals(), events() methods;
     Lexemes pauses can be now be named events, and
     as named events can be deactivated and reactivated

2.060000 Sat Jun 22 17:56:20 PDT 2013

   * Fix bug in SLIF lexing

2.058000 Tue Jun 11 18:31:57 PDT 2013

   * Added nulled and predicted events;

   * Added event deactivation and reactivation.

2.056000 Wed May 22 17:38:03 PDT 2013

   * Rearrange POD to make SLIF primary interface

   * Added accessors to Scanless::R

   * Fix bug found by Jean-Damien: combining
     ambiguity and SLIF external scanning caused
     segment violation.
     
2.054000 Wed May 15 12:54:00 PDT 2013

   * Added completion events

2.052000

    * Add rank adverb, external scanning to SLIF

2.050000 Mon Mar 18 08:59:04 PDT 2013
 
     * Optimizations

2.048000 Sun Mar 10 17:59:11 PDT 2013

     * New options (blessed arrays) allow direct generation
       of AST's from SLIF

     * Optimization of valuator and SLIF

2.046000 Wed Feb  6 08:24:05 PST 2013

     * Core logic of Scanless recognizer converted to C --
       it is now more than 10 times faster.

2.044000 Mon Jan 28 19:42:06 PST 2013

      * Fix 64-bit Windows failures.

2.042000 Tue Jan 22 17:15:50 PST 2013

      * Scanless interface now supports Unicode.

2.040000 Sat Jan  5 08:33:52 PST 2013

     * Fixed two cases in the Scanless interface.  In
       one case, parse exhaustion at the G1 level was
       treated as an error.  In the other, the G0 level
       assumed there would be at least one :discard rule,
       and had problems if there were none.

2.038000 Wed Jan  2 09:14:38 PST 2013

     * The Scanless G0 rule order depended
       indirectly on the order of
       keys in a Perl hash.  Fixed that.

2.036000 Tue Jan  1 00:54:36 PST 2013
 
     * Documentation for the Stuifzand (BNF) and
       Scanless interfaces is complete.  They are
       now in full release.

2.034000 Wed Dec 26 08:44:16 PST 2012

     * Fix problem with negative rule ranks.

     * Stuifzand and Scanless interfaces are complete
       and tested.  Only lack of documentation prevented
       them from being taken out of beta.

2.032000 Sun Dec  9 10:19:50 PST 2012

      * Speed up precomputation of large grammars.

2.030000 Tue Dec  4 18:01:55 PST 2012

      * Use Config::AutoConf to install on Sun's,
        OpenBSD.
      * Use legacy File::Path::mkpath() for portability

2.026000 Fri Nov 23 08:04:02 PST 2012

      * Now installs in  Windows,
        using Config::AutoConf

2.024000 Thu Nov  8 08:19:21 PST 2012

      * Changing Marpa::R2, Libmarpa and
        Marpa::R2::Thin to full release.

2.022000 Fri Oct 19 18:27:16 PDT 2012

      * Extensive revisions to internals of
        Marpa::R2::HTML; now requires only
        HTML::Parser, not HTML::PullParser;
        'pseudoclass' argspec of descendants()
        method removed from documentation.

      * Make HTML::Parser a required
        dependency.

2.020000 Wed Sep 12 20:44:46 PDT 2012

      * Make Marpa::R2::HTML a fully visible part
        of the distribution.

      * Documentation changes and fixes

2.018000 Wed Aug 22 20:46:44 PDT 2012

      * Libmarpa docs now shipped with Marpa::R2

      * Changed Marpa::R2 to beta.  Libmarpa and
        Marpa::R2::Thin remain alpha.

2.016000 Sun Aug  5 17:20:13 PDT 2012

      * Documentation fixes

      * Added marpa_r_expected_symbol_event_set() to Libmarpa

      * Added Marpa::R2::Recognizer::expected_symbol_event_set(),
        Marpa::R2::Recognizer::events(), and 'event_if_expected'
        recognizer named argument to Marpa::R2

2.014000 Sat Jul 21 18:18:52 PDT 2012

      * Added $v->location() to thin interface

      * Added location step accessors to Libmarpa

2.012000 Sun Jul 15 17:43:59 PDT 2012

      * Added marpa_o_rank() to Libmarpa interface

      * Added "if" arg to Marpa::R2::Thin::G->new()

2.010000 Thu Jul  5 20:44:07 PDT 2012

      * Documented Libmarpa API and Marpa::R2::Thin.

      * Added context variables

2.008000 14-Jun-2012 10:42

       * Documented $recce->progress()

       * Clean up libmarpa build

2.006000 8-Jun-2012 08:18

        * Convert progress reports to C

        * Cleanup logic of valued/unvalued symbols

        * Cleanup ranking of symbols/rules

        * LHS of rule no longer implicitly used
          as action name.

2.004000 01-Jun-2012 08:20

        * Fix action resolution issue; cleanup
          memory allocation.

        * Large bump in version number is to sync
          version numbers with libmarpa.

0.002000 26-May-2012 08:56

       * First official ("indexed") release

       * Changes incompatible with Marpa::XS are described
         in Marpa::R2::Changes POD doc

0.001_000 Fri Oct 21 20:57:44 PDT 2011

        * Marpa::R2 forked from Marpa::XS 0.019_002

# vim: set expandtab shiftwidth=4:
