.. _release-8-10-6:
Release notes for version 8.10.6
================================

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 versions 9
through 12.

General bug fixes
-----------------

- Export some RTS symbols required for static builds of GHC (:ghc-ticket:`19763`).

- Fix LLVM version checking logic so it no longer complains about supported LLVM versions.
  (:ghc-ticket:`19973`, :ghc-ticket:`19829`, :ghc-ticket:`19959`)

- Fix some RTS crashes on Darwin due to mixing up the closure sizes of the ``aarch64``
  and ``x86-64`` backends. 

- Fix a crash on the non-moving GC due to incorrect logic for calculating the header
  size for array write barries (:ghc-ticket:`19715`)

- Fix a bug in ``base`` leading to a high likelihood of space leaks when using lazy
  bytestrings. (:ghc-ticket:`20107`)

- Fix some timer races in the RTS possibly manifesting in :ghc-ticket:`18033` and
  :ghc-ticket:`20132`

- Fix some memory ordering issues manifesting on aarch64-darwin due to an RTS bug
  (:ghc-ticket:`20093`)

- Fix a number of bugs affecting the RTS m32 allocator (:ghc-ticket:`19421`)

- Fix a segmentation fault when resizing the GHCi terminal window on aarch64-darwin
  due to an incorrect foreign import in ``haskeline`` (:ghc-ticket:`20079`)

Packaging fixes
-----------------

- Actually use the ``integer-simple`` big integer backend in the Alpine Linux and
  Windows (integer-simple) releases. (:ghc-ticket:`18967`, :ghc-ticket:`19953`)

- Don't include ``configure`` scripts in windows bindist. (:ghc-ticket:`19868`)

- Always create both versioned and unversioned executables with the hadrian bindist. 
  (:ghc-ticket:`20074`)

- Give ``ghc-pkg`` the same version as ``ghc`` (:ghc-ticket:`20087`)

- Bump ``containers`` to 0.6.5.1

- Bump ``base`` to 4.14.3.0

- Bump ``haskeline`` to 0.8.2

- Bump ``process`` to 1.6.13.2 (:ghc-ticket:`19994`)

- Bump ``Win32`` to 2.6.2.1 (:ghc-ticket:`20202`)

Portability fixes
-----------------

- Fix an issue making GHC unable to build on FreeBSD due to an undefined reference
  to ``libiconv``. (:ghc-ticket:`19958`)

- Match the C calling convention on platforms like s390x by sign/zero extending
  parameters for foreign calls. (:ghc-ticket:`19023`)

- Fix ``xxHash`` duplicate symbol errors on FreeBSD. (:ghc-ticket:`19948`)

- Properly honour :ghc-flag:`-fno-use-rpaths` on darwin. (:ghc-ticket:`20004`)

- Fix an issue causing libraries like ``network`` to fail building due to incorrect linker
  paths. (:ghc-ticket:`19968`)

- Fix a linking portability issue on macOS that resulted in undefined symbol
  errors for ``___darwin_check_fd_set_overflow`` (:ghc-ticket:`19950`)

Known issues
------------

- A long-standing bug (:ghc-ticket:`16893`) which can cause some applications
  of ``unsafeCoerce`` to segmentation fault is only partially fixed in this
  release. This release only avoids this issue in the uses of ``unsafeCoerce``
  in ``Data.Typeable.Internal``, which was the proximate cause of
  :ghc-ticket:`16893`.

  However, it is possible that this bug could manifest in user-code using
  ``unsafeCoerce`` to perform dynamic type checks. See the :ghc-ticket:`ticket
  <16893>` for details.

  We expect that this issue will be fixed in the next major release of GHC.

- A long-standing bug (:ghc-ticket:`17760`) where some uses of the ``touch#``
  primop can be dropped by the simplifier is present in this release. This bug
  will be fixed in GHC 9.0.1. In the meantime, see the :ghc-ticket:`ticket
  <17760>` for mitigations.


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/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 ``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



