.. _release-8-4-2:

Release notes for version 8.4.2
===============================

Highlights
----------

This is a bug-fix release resolving several regressions introduced in 8.4.1.

The highlights, since the 8.4.1 release, are:

- Fixed a regression causing uses of ``Control.Exception.evaluate`` to be
  incorrectly optimised, resulting in incorrect evaluation behavior
  (:ghc-ticket:`13930`)

- Fix a regression causing the interpreter to segmentation fault when built with
  profiling (:ghc-ticket:`14705`)
  
- DWARF debug information support has been significantly improved
  (:ghc-ticket:`14894`, :ghc-ticket:`14779`)

- A regression in runtime performance of code involving ``newtype``\s has been
  fixed (:ghc-ticket:`14936`)

Full details
------------

In addition to the highlights listed above, this release resolves a number of
other issues, described below.

Compiler
~~~~~~~~

- A bug affecting GHC's debug output support (:ghc-flag:`-g`) which resulted in
  invalid code being generated for string literals (:ghc-ticket:`13868`)

- :ghc-ticket:`14918`, where ``Read`` instances for types with field names
  containing ``#`` would fail to parse, has been fixed.

- Several compiler panics have been resolved (:ghc-ticket:`12158`,
  :ghc-ticket:`15002`, :ghc-ticket:`14933`, :ghc-ticket:`14959`)

- Fix a regression in which derived ``Read`` instances for record data types
  with field names ending with ``#`` (by way of :ghc-flag:`-XMagicHash`) would
  no longer parse valid output.


Runtime system
~~~~~~~~~~~~~~

- A bug causing panics while running programs with retainer profiling
  (:rts-flag:`-hr`) was fixed (:ghc-ticket:`14947`)

Template Haskell
~~~~~~~~~~~~~~~~

No changes.

``ghc`` library
~~~~~~~~~~~~~~~

No changes.

``base`` library
~~~~~~~~~~~~~~~~

- Version bumped to 4.11.1.0 to account for the addition of
  ``GHC.IO.FixIOException``

- Add the ``readFieldHash`` function to ``GHC.Read`` which behaves like
  ``readField``, but for a field that ends with a ``#`` symbol.

``integer-gmp`` library
~~~~~~~~~~~~~~~~~~~~~~~

- Version bumped to 1.0.2.0 to account for the addition of ``powModSecInteger``.

- Define ``powModSecInteger``, a "secure" version of ``powModInteger`` using
  the ``mpz_powm_sec`` function.

Build system
~~~~~~~~~~~~

- ``configure`` now takes a ``--disable-dtrace`` flag, allowing workaround of
  :ghc-ticket:`15040`.

- A bug breaking GHC builds bootstrapped on Darwin has been fixed (:ghc-ticket:`14972`)

Included libraries
------------------

The package database provided with this distribution also contains a number of
packages other than GHC itself. See the changelogs provided with these packages
for further change information.

.. ghc-package-list::

    libraries/array/array.cabal:             Dependency of ``ghc`` library
    libraries/base/base.cabal:               Core library
    libraries/binary/binary.cabal:           Dependency of ``ghc`` library
    libraries/bytestring/bytestring.cabal:   Deppendency of ``ghc`` library
    libraries/Cabal/Cabal/Cabal.cabal:       Dependency of ``ghc-pkg`` utility
    libraries/containers/containers.cabal:   Dependency of ``ghc`` library
    libraries/deepseq/deepseq.cabal:         Dependency of ``ghc`` library
    libraries/directory/directory.cabal:     Dependency of ``ghc`` library
    libraries/filepath/filepath.cabal:       Dependency of ``ghc`` library
    compiler/ghc.cabal:                      The compiler itself
    libraries/ghci/ghci.cabal:               The REPL interface
    libraries/ghc-boot/ghc-boot.cabal:       Internal compiler library
    libraries/ghc-compact/ghc-compact.cabal: Core library
    libraries/ghc-prim/ghc-prim.cabal:       Core library
    libraries/haskeline/haskeline.cabal:     Dependency of ``ghci`` executable
    libraries/hpc/hpc.cabal:                 Dependency of ``hpc`` executable
    libraries/integer-gmp/integer-gmp.cabal: Core library
    libraries/mtl/mtl.cabal:                 Dependency of ``Cabal`` library
    libraries/parsec/parsec.cabal:           Dependency of ``Cabal`` library
    libraries/process/process.cabal:         Dependency of ``ghc`` library
    libraries/template-haskell/template-haskell.cabal:     Core library
    libraries/text/text.cabal:               Dependency of ``Cabal`` library
    libraries/time/time.cabal:               Dependency of ``ghc`` library
    libraries/transformers/transformers.cabal: Dependency of ``ghc`` library
    libraries/unix/unix.cabal:               Dependency of ``ghc`` library
    libraries/Win32/Win32.cabal:             Dependency of ``ghc`` library
    libraries/xhtml/xhtml.cabal:             Dependency of ``haddock`` executable
