5. Release notes for version 8.10.3 — Glasgow Haskell Compiler 8.10.7 User's Guide

# Glasgow Haskell Compiler User's Guide

# 5. Release notes for version 8.10.3

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

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

## 5.1. Highlights

- Numerous stability improvements on Windows.

- GHC now has far more robust support for architectures with weak memory ordering guarantees.

- GHC can split up dynamic objects to mitigate the macOS `RPATH` size limitation when building large projects (#14444).

- Several significant correctness bugs in the low-latency garbage collector have been fixed. Users of `--nonmoving-gc` are strongly encouraged to upgrade promptly.

## 5.2. Full details

### 5.2.1. Compiler

- A compiler crash triggered by a `SPECIALISE` pragma on a binding with no unfolding has been fixed (#18118).

- GHC now supports a command-line flag, `-pgmc-supports-no-pie`, allowing the user to indicate that the C compiler supplied via `-pgmc ⟨cmd⟩` supports `-no-pie`.

- A pair of flags, `-pgmlm ⟨cmd⟩` and `-optlm ⟨option⟩`, allowing the user to override the linker used to be join GHCi object files has been added.

- A regression in the treatment of the `-fbyte-code` flag has been fixed (#18955).

- A bug in the determination of source spans of post-qualified imports has been fixed #19014.

### 5.2.2. Runtime system

- GHC is now more careful to respect address space limits set via ulimit` when allocating its heap (#18623).

- Numerous fixes on Windows. These include a bug in stack allocation triggering Windows’ stack verifier (#18601), various linker bugs (#15808, #18991), and a bug where `libc` may be called during image initialization resulting in undefined behavior (#18548).

- GHC’s linker is now able to load macOS frameworks on Big Sur (#18446).

- A soundness bug affecting programs relying on heavy mutation of `MVar`s has been fixed (#18919).

- The internal linker’s code unloading logic has been reenabled and now tracks object file dependencies, fixing a soundness bug (#16525).

- A linker bug relying in the misalignment of loaded `.rodata` sections has been fixed.

## 5.3. 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.

## 5.4. 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