6. Release notes for version 8.8.4 — Glasgow Haskell Compiler 8.8.4 User's Guide

# Glasgow Haskell Compiler User's Guide

# 6. Release notes for version 8.8.4

GHC 8.8.4 is a minor release intended to fix regressions and minor bugs in the 8.8.1, 8.8.2 and 8.8.3 releases.

Like previous releases in the 8.8 series, the `LLVM backend` of this release is to be used with LLVM 7.

## 6.1. Highlights

- Fixes a bug in process creation on Windows (Issue #17926).

- Works around a Linux kernel bug in the implementation of `timerfd`s (Issue #18033).

- Fixes a few linking issues affecting ARM

- Fixes “missing interface file” error triggered by some uses of `Ordering` (Issue #18185)

- Fixes an integer overflow in the compact-normal-form import implementation (Issue #16992)

- `configure` now accepts `--enable-numa` flag to enable/disable `numactl` support on Linux.

- Fixes potentially lost sharing due to the desugaring of left operator sections (Issue #18151).

- Fixes a build-system bug resulting in potential miscompilation by unregisteised compilers (Issue #18024)

## 6.2. Known issues

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

- The simplifier can optimise away some applications of the `touch#` primop when it can prove that the `touch#` is unreachable due to divergence or synchronous exception, resulting in memory unsoundness. Users requiring `touch#` behavior are advised to only use `touch#` to implement continuation-passing-style primitives (e.g. in the style of `withForeignPtr`) bearing `NOINLINE` pragmas (to avoid inappropriate simplification). See Issue #17760 for details.

## 6.3. 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.8.4 | The compiler itself
Cabal | 3.0.1.0 | Dependency of `ghc-pkg` utility
Win32 | 2.6.1.0 | Dependency of `ghc` library
array | 0.5.4.0 | Dependency of `ghc` library
base | 4.13.0.0 | Core library
binary | 0.8.7.0 | Dependency of `ghc` library
bytestring | 0.10.10.1 | Dependency of `ghc` library
containers | 0.6.2.1 | Dependency of `ghc` library
deepseq | 1.4.4.0 | Dependency of `ghc` library
directory | 1.3.6.0 | Dependency of `ghc` library
filepath | 1.4.2.1 | Dependency of `ghc` library
ghc-boot-th | 8.8.4 | Internal compiler library
ghc-boot | 8.8.4 | Internal compiler library
ghc-compact | 0.1.0.0 | Core library
ghc-heap | 8.8.4 | GHC heap-walking library
ghc-prim | 0.5.3 | Core library
ghci | 8.8.4 | The REPL interface
haskeline | 0.7.5.0 | Dependency of `ghci` executable
hpc | 0.6.0.3 | Dependency of `hpc` executable
integer-gmp | 1.0.2.0 | Core library
libiserv | 8.8.4 | 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.9.0 | Dependency of `ghc` library
stm | 2.5.0.0 | Dependency of `haskeline` library
template-haskell | 2.15.0.0 | Core library
terminfo | 0.4.1.4 | Dependency of `haskeline` library
text | 1.2.4.0 | 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