Changelog of @hackage/happy 1.19.11


1.19.11

    * Fix for building with GHC 8.6.x

1.19.10

    * Fix polymorphic (rank-n) non-terminals
    * Fix for GHC 8.8.1

1.19.9

    * Fix cabal warnings
    * Bump upper bounds
    * Fix build with GHC 8.4.1-alpha

1.19.8

    * Fix issue #94 (some grammars don't compile due to new type
      signatures introduced to allow overloading to be used)

1.19.7

    * Fix misisng test suite files in the sdist

1.19.6 * Manually generate Parser.hs using Makefile before sdist, to fix bootstrapping problems with cabal sandboxes & new-build * Documentation fixes * Fixed GLR support * new option -p/--pretty prints the grammar rules (only) to a file * Added generation of additional type signatures to enable use of typeclasses in monadic parsers.


1.19.5 * fixes for GHC 7.10 * Code cleanups (thanks Index Int vlad.z.4096@gmail.com)


1.19.4 * fix for GHC 7.10 (Applicative/Monad, #19, #21)


1.19.3 * fix for GHC 7.2 (#16)


1.19.2 * fixes for clang (XCode 5)


1.19.1 * repackaged to build with GHC 7.7+


1.19 * necessary changes to work with GHC 7.8


1.18.10 * Fix build with GHC 7.6


1.18.8 * Fix a packaging bug (cabal-install-0.10.2 didn't put the Happy-generated files in the sdist)


1.18.7

    * Fix a bug in error handling when using %monad without %lexer

Changes from version 1.17 to 1.18

    * New feature: EBNF-style paramterized macros, thanks to
      Iavor Diatchki.
    * Works with Cabal 1.2, 1.4 and 1.6
    * A few minor bugfixes

Changes from version 1.16 to 1.17

    * Cabal 1.2 is required
    * Works with upcoming GHC 6.8.1
    * Fix the 'parE' bug (poor error message for errors in the grammar)
    * Some performance improvements to Happy itself

Changes from version 1.15 to 1.16

* Switch to a Cabal build system: you need a recent version of Cabal
  (1.1.6 or later).  If you have GHC 6.4.2, then you need to upgrade
  Cabal before building Happy.  GHC 6.6 is fine.

* New %error directive

* New production forms: {%% .. } and {%^ .. }

* Added Attribute Grammar support, by Robert Dockins

Changes from version 1.14 to 1.15

* New %expect directive
* the list of tokens passed to happyError now includes the current
      token (not %lexer).
* added support for ambiguous grammars via Generalized LR parsing
* added %partial to indicate a parser that can return a result
  before EOF is reached.

Changes from version 1.13 to 1.14

* New meta-variable $> represents the rightmost token.

* Happy's OPTIONS pragma is merged with an existing one in
  the grammar file, if any.

Changes from version 1.11 to 1.13

* Support for newer versions of GHC (>= 5.04).

* Addition of an experimental flag: --strict.

Changes from version 1.10 to 1.11

* tokens no longer have a default precedence - if you 
  want a token to have a precedence, you have to declare it.

* bugfix to templates for GHC on 64-bit platforms.

Changes from version 1.9 to 1.10

* bugfixes, and minor performance improvements,

* most of the examples work again.

Changes from version 1.8 to 1.9

* A grammar may now contain several entry points, allowing
  several parsers to share parts of the grammar.

* Some bugfixes.

Changes from version 1.6 to 1.8

  * Parser table compression, and more efficient
    table encoding when used with GHC.  Large grammars
    can now be compiled in much less time/space than
    before using GHC.

  * Yacc-style operator precedence, thanks to patches
    from Hermann Oliveira Rodrigues <hermann@dcc.ufmg.br>
    and Josef Svenningsson <josefs@cs.chalmers.se>.

  * A debug option which causes the generated parser to
    print tracing information at each step during parsing.

Changes from version 1.5 to 1.6

  • Now written in, and generates, Haskell 98.

  • Several bug fixes.

  • A new option, -c, generates parsers that use GHC's unsafeCoerce# primitive to speed up parsing and cut down the binary size. The -c option can only be used with the -g (GHC extensions) option.

  • Parsers generated with the -g option will compile to smaller binaries now - some sources of parser-bloat were identified and squished.

  • Happy has a new Open Source license, based on the BSD license.

  • A sample Haskell parser using Happy is included.


Changes from version 1.2 to version 1.5

  • Many bug fixes to the error recovery support, found by experimenting with the Haskell grammar and layout.

  • Happy is about 5 times faster on large examples, due to some changes in the LALR(1) algorithms.


Changes from version 0.9a to version 1.2

  • Supports Haskell 1.4

  • Lots of bugs fixed

  • Performance: the parser generator is at least 20% faster, and generated parsers should be faster due to the replacement of a data type with a newtype.

  • Simple error recovery: designed to be enough to implement the Haskell layout rule.

  • Revamped monad support: the monad can now be threaded through the lexer, enabling passing of state between the parser and the lexer (handy for the Haskell layout rule), and consistent error handling.

  • The %newline feature is removed, the same effect can be achieved using the new monad support.


Changes from version 0.8 to 0.9:

  • Happy should be much faster than before.

  • Generated parsers will be 5-10% smaller.

  • Happy now compiles with ghc-0.26.

  • Support for monadic parsers via %monad (see the documentation).

  • New syntax: previously

    f :: { } f : ... | ... etc.

    can now be written

    f :: { } : ... | ... etc.

    (i.e. omit the extra 'f'. It was always ignored anyway :-)

  • Miscellaneous bug fixes.