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 (#19763).

  • Fix LLVM version checking logic so it no longer complains about supported LLVM versions. (#19973, #19829, #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 (#19715)

  • Fix a bug in base leading to a high likelihood of space leaks when using lazy bytestrings. (#20107)

  • Fix some timer races in the RTS possibly manifesting in #18033 and #20132

  • Fix some memory ordering issues manifesting on aarch64-darwin due to an RTS bug (#20093)

  • Fix a number of bugs affecting the RTS m32 allocator (#19421)

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

8.2. Packaging fixes

  • Actually use the integer-simple big integer backend in the Alpine Linux and Windows (integer-simple) releases. (#18967, #19953)

  • Don’t include configure scripts in windows bindist. (#19868)

  • Always create both versioned and unversioned executables with the hadrian bindist. (#20074)

  • Give ghc-pkg the same version as ghc (#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 (#19994)

  • Bump Win32 to 2.6.2.1 (#20202)

8.3. Portability fixes

  • Fix an issue making GHC unable to build on FreeBSD due to an undefined reference to libiconv. (#19958)

  • Match the C calling convention on platforms like s390x by sign/zero extending parameters for foreign calls. (#19023)

  • Fix xxHash duplicate symbol errors on FreeBSD. (#19948)

  • Properly honour -fno-use-rpaths on darwin. (#20004)

  • Fix an issue causing libraries like network to fail building due to incorrect linker paths. (#19968)

  • Fix a linking portability issue on macOS that resulted in undefined symbol errors for ___darwin_check_fd_set_overflow (#19950)

8.4. Known issues

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

    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 (#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 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.6

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

Internal compiler library

ghc-boot

8.10.6

Internal compiler library

ghc-compact

0.1.0.0

Core library

ghc-heap

8.10.6

GHC heap-walking library

ghc-prim

0.6.1

Core library

ghci

8.10.6

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

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