.. _release-9-4-8:

Version 9.4.8
==============

The significant changes to the various parts of the compiler are listed in the
following sections.

The :ghc-flag:`LLVM backend <-fllvm>` of this release is to be used with LLVM
10, 11, 12, 13, or 14.

Significant Changes
~~~~~~~~~~~~~~~~~~~~

Issues fixed in this release include:

Compiler
--------

- Fix a recompilation checking bug where GHC may miss changes in transitive
  dependencies when deciding to relink a program (:ghc-ticket:`23724`).
- Fix a compiler panic resulting from incorrect eta-reduction of join points
  (:ghc-ticket:`23922`).
- Fix a code generator bug on AArch64 platforms resulting in invalid conditional
  jumps (:ghc-ticket:`23746`).
- Improve STG code generation in certain scenarios (:ghc-ticket:`23783`).
- Fix a bug where we could silently truncate 64 bit values to 32 bit on
  32 bit architectures.
- Fix ``-split-sections`` on Windows (:ghc-ticket:`22834`).

Runtime system
--------------

- Remove an assertion prone to race conditions (:ghc-ticket:`22563`).
- Fix some crashes and loops with the non-moving GC (:ghc-ticket:`24042, :ghc-ticket:`23003`).
- Properly escape characters when writing JSON profiles (``-pJ``) (:ghc-ticket:`23924`).

Build system and packaging
--------------------------

- Ensure ``-split-sections`` is enabled while building binary distributions for
  all platforms where this is supported (:ghc-ticket:`21135`).
- Make the configure script use ``AC_PATH_TOOL`` instead of ``AC_PATH_PROG`` to
  detect tools, making cross-compilation easier (:ghc-ticket:`21601`).
- Fix a bug where ``-DNOSMP`` wasn't being passed to the C compiler even if the
  target doesn't support SMP (:ghc-ticket:`24082`).

Core libraries
--------------

- Bump ``base`` to 4.17.2.1
- Bump ``bytestring`` to 0.11.5.3
- Bump ``process`` to 1.6.18.0

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:   Dependency of ``ghc`` library
    libraries/Cabal/Cabal/Cabal.cabal:       Dependency of ``ghc-pkg`` utility
    libraries/Cabal/Cabal-syntax/Cabal-syntax.cabal:  Dependency of ``ghc-pkg`` utility
    libraries/containers/containers/containers.cabal: Dependency of ``ghc`` library
    libraries/deepseq/deepseq.cabal:         Dependency of ``ghc`` library
    libraries/directory/directory.cabal:     Dependency of ``ghc`` library
    libraries/exceptions/exceptions.cabal:   Dependency of ``ghc`` and ``haskeline`` 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-boot-th/ghc-boot-th.cabal: Internal compiler library
    libraries/ghc-compact/ghc-compact.cabal: Core library
    libraries/ghc-heap/ghc-heap.cabal:       GHC heap-walking 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/libiserv/libiserv.cabal:       Internal compiler library
    libraries/mtl/mtl.cabal:                 Dependency of ``Cabal`` library
    libraries/parsec/parsec.cabal:           Dependency of ``Cabal`` library
    libraries/pretty/pretty.cabal:           Dependency of ``ghc`` library
    libraries/process/process.cabal:         Dependency of ``ghc`` library
    libraries/stm/stm.cabal:                 Dependency of ``haskeline`` library
    libraries/template-haskell/template-haskell.cabal: Core library
    libraries/terminfo/terminfo.cabal:       Dependency of ``haskeline`` 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

