All Versions
Latest Version
Avg Release Cycle
Latest Release

Changelog History
Page 3

  • v1.14.0.1 Changes

    • โž• Add support for extensions:
      • MultiWayIf
      • LambdaCase
      • DataKinds
    • โœ‚ Remove support for old (deprecated) Generics
    • Derive GHC's Generic instances for datatypes
    • Derive some missing Data and Typeable instances
    • ๐Ÿ›  Multiple bug fixes
    • โž• Add missing Functor and Applicative instances for monads
    • โœ‚ Remove support for GHCs older than 7.4

    ** 1.14.x

  • v1.13.6 Changes

    • Modernize the Extension datatype in L.H.E.Extension, following the lead of Cabal, to allow negative and positive extension modifiers (turning features on and off). You need to worry about backwards-incompatible changes if any of the following pertains to you: 1) If you use the Extension datatype programmatically - it has changed significantly (see documentation). 2) The ParseMode record now has one more field (baseLanguage :: Language), which might give you a type error. 3) The behavior of the (extensions :: [Extension]) field has changed, which could bite you if you pass custom extensions in the ParseMode. Previously, the ParseMode defaulted to the list of extensions accepted by Haskell2010, and if you set the list explicitly you would override this. Now, the defaults are { baseLanguage = Haskell2010, extensions = [] }, and explicitly setting a list of extensions will be interpreted on top of Haskell2010. See further the documentation for L.H.E.Extension.

    • โž• Add support for the 'capi' calling convention. It is enabled with the CApiFFI extension. It's been included since GHC 7.4, and advertised since 7.6.

    • โž• Add support for the 'interruptible' FFI safety annotation, enabled with the InterruptibleFFI extension.

    • ๐Ÿ‘ Give better error message when lexing newline fails. In particular, fix the bug when the parser would crash if the file didn't end with a newline.

    • ๐Ÿ‘Œ Support unboxed tuple expressions and patterns.

    • ๐Ÿ›  Fix bug in lexing of primitive integer literals in hex or octal notation.

    • Disallow negative primitive word literals (such as W# (-0x8000000000000000##)).

    • ๐Ÿ‘ Allow phase control for SPECIALIZE pragma.

    • Derive Foldable and Traversable instances for all annotated AST types.

    • ๐Ÿ›  Fix bug with pretty-printing WARNING and DEPRECATED pragmas.

    ** 1.13.x

  • v1.13.5 Changes

    • ๐Ÿ‘ Allow 0-parameter type classes when MultiParamTypeClasses is on.

    • โž• Add support for NondecreasingIndentation. Previously it was always on, which is the default behavior in GHC. Now it is on only if enabled, or when using the newly added ghcDefaults extension set (instead of haskell2010).

  • v1.13.4 Changes

    • ๐Ÿ”ฆ Expose Language.Haskell.Exts.Lexer, which implements a standalone token stream lexer. The module is re-exported both by Language.Haskell.Exts and by Language.Haskell.Exts.Annotated.
  • v1.13.3 Changes

    • ๐Ÿ›  Fix bug where operators starting with # written in parentheses would not be parsed when UnboxedTuples is turned on. Now works.

    • ๐Ÿ‘ Allow 'family' and 'forall' as (non-type) varid's. This adds one more shift/reduce conflict to the parser, and its resolution means that '{-# RULES "name" forall = ... #-}' is not allowed.

    • Complete the set of FFI calling conventions from the Haskell 2010 report (even if no compiler implements them). Also include the 'js' calling convention, supported by UHC.

  • v1.13.2 Changes

    • Fundep premises are now allowed to be empty.

    • ๐Ÿ›  Fix the bug where the lexer would crash on a LINE pragma that did not include a line number.

    • ๐Ÿ›  Fix the bug where the lexer would require the # of a MagicHash-style type constructor to be succeeded by at least one character in the file.

    • ๐Ÿ›  Fix long-standing bug where the parser would crash with an ugly "Internal error" error message if encountering an extra }.

    • Report errors at the right place for function arity mismatches. Earlier they were reported at end of file, now they are reported where the function is declared.

    • Lexer now properly fails on line-breaks in string literals.

    • Lexer now handles character escapes up to 0x10FFFF (unicode).

  • v1.13.1 Changes

    • ๐Ÿ›  Fix the bug with the precedence of unary prefix minus. Previously it was resolved as binding more tightly than any infix operator, now it is correctly treated as having the same fixity as binary infix minus.
  • v1.13.0 Changes

    • ๐Ÿ‘ Allow an optional semi before the closing tag of an element. This achieves a similar effect for XmlSyntax in do blocks as DoAndIfThenElse does for the if construct. No more need to indent the closing tag one step further than the opening tag.

    • โž• Add a dummy 'noLoc :: SrcLoc' to L.H.E.SrcLoc, to use when generating code. It could definitely be done more elegantly, but not without inducing another major version bump, so later.

    • ๐Ÿ›  Fix a regression from 1.11.x where the parser would crash upon encountering non-simple class/data declaration heads, e.g. 'data A [a]'. Now fails with a parse error as intended.

  • v1.12.0 Changes

    • โž• Add extensions DoAndIfThenElse and NPlusKPatterns to Language.Haskell.Exts.Extensions.

    • ๐Ÿ‘ DoAndIfThenElse is now supported, at long last, making HSE compatible with Haskell2010

    • Introduce haskell98 and haskell2010 extension groups, exported from Language.Haskell.Exts.Extensions.

    • 0๏ธโƒฃ Backwards-incompatible change: default parse mode is now to use haskell2010, which means the following features are recognized by default: DoAndIfThenElse, PatternGuards, ForeignFunctionInterface, EmptyDataDecls. NPlusKPatterns is no longer recognized by default.

    ** 1.12.x

  • v1.11.1 Changes

    • ๐Ÿšš Move from old [$...| quasi-quote syntax to the new [...| one. The old syntax is still recognized while parsing.

    • ๐Ÿ‘ Allow symbols as variables when TypeOperators is enabled.

    • ๐Ÿ“‡ Rename ExplicitForall in ExplicitForAll, to be consistent with GHC and the Haskell' process.

    ** 1.11.x