Changelog for happy-1.18.1

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 <> and Josef Svenningsson <>. * 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.