Changelog for happy-1.18
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 :: { <type> }
f : ...
| ...
etc.
can now be written
f :: { <type> }
: ...
| ...
etc.
(i.e. omit the extra 'f'. It was always ignored anyway :-)
* Miscellaneous bug fixes.