8. Release notes for version 8.10.6

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

The LLVM backend of this release is to be used with LLVM versions 9 through 12.

8.1. General bug fixes

  • Export some RTS symbols required for static builds of GHC (#%s19763).
  • Fix LLVM version checking logic so it no longer complains about supported LLVM versions. (#%s19973, #%s19829, #%s19959)
  • 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 (#%s19715)
  • Fix a bug in base leading to a high likelihood of space leaks when using lazy bytestrings. (#%s20107)
  • Fix some timer races in the RTS possibly manifesting in #%s18033 and #%s20132
  • Fix some memory ordering issues manifesting on aarch64-darwin due to an RTS bug (#%s20093)
  • Fix a number of bugs affecting the RTS m32 allocator (#%s19421)
  • Fix a segmentation fault when resizing the GHCi terminal window on aarch64-darwin due to an incorrect foreign import in haskeline (#%s20079)

8.2. Packaging fixes

  • Actually use the integer-simple big integer backend in the Alpine Linux and Windows (integer-simple) releases. (#%s18967, #%s19953)
  • Don’t include configure scripts in windows bindist. (#%s19868)
  • Always create both versioned and unversioned executables with the hadrian bindist. (#%s20074)
  • Give ghc-pkg the same version as ghc (#%s20087)
  • 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 (#%s19994)
  • Bump Win32 to 2.6.2.1 (#%s20202)

8.3. Portability fixes

  • Fix an issue making GHC unable to build on FreeBSD due to an undefined reference to libiconv. (#%s19958)
  • Match the C calling convention on platforms like s390x by sign/zero extending parameters for foreign calls. (#%s19023)
  • Fix xxHash duplicate symbol errors on FreeBSD. (#%s19948)
  • Properly honour -fno-use-rpaths on darwin. (#%s20004)
  • Fix an issue causing libraries like network to fail building due to incorrect linker paths. (#%s19968)
  • Fix a linking portability issue on macOS that resulted in undefined symbol errors for ___darwin_check_fd_set_overflow (#%s19950)

8.4. Known issues

  • A long-standing bug (#%s16893) 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 #%s16893.

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

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

  • A long-standing bug (#%s17760) 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 ticket for mitigations.

8.5. 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.

Package Version Reason for inclusion
ghc 8.10.7 The compiler itself
Cabal 3.2.1.0 Dependency of ghc-pkg utility
Win32 2.6.2.1 Dependency of ghc library
array 0.5.4.0 Dependency of ghc library
base 4.14.3.0 Core library
binary 0.8.8.0 Dependency of ghc library
bytestring 0.10.12.0 Dependency of ghc library
containers 0.6.5.1 Dependency of ghc library
deepseq 1.4.4.0 Dependency of ghc library
directory 1.3.6.0 Dependency of ghc library
exceptions 0.10.4 Dependency of haskeline library
filepath 1.4.2.1 Dependency of ghc library
ghc-boot-th 8.10.7 Internal compiler library
ghc-boot 8.10.7 Internal compiler library
ghc-compact 0.1.0.0 Core library
ghc-heap 8.10.7 GHC heap-walking library
ghc-prim 0.6.1 Core library
ghci 8.10.7 The REPL interface
haskeline 0.8.2 Dependency of ghci executable
hpc 0.6.1.0 Dependency of hpc executable
integer-gmp 1.0.3.0 Core library
libiserv 8.10.7 Internal compiler library
mtl 2.2.2 Dependency of Cabal library
parsec 3.1.14.0 Dependency of Cabal library
pretty 1.1.3.6 Dependency of ghc library
process 1.6.13.2 Dependency of ghc library
stm 2.5.0.1 Dependency of haskeline library
template-haskell 2.16.0.0 Core library
terminfo 0.4.1.4 Dependency of haskeline library
text 1.2.4.1 Dependency of Cabal library
time 1.9.3 Dependency of ghc library
transformers 0.5.6.2 Dependency of ghc library
unix 2.7.2.2 Dependency of ghc library
xhtml 3000.2.2.1 Dependency of haddock executable