2.6. Version 9.2.6 — Glasgow Haskell Compiler 9.2.6 User's Guide

# 2.6. Version 9.2.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 9, 10, 11, or 12.

## 2.6.1. Compiler

- Fix a regression in the simplifier due to a bad backport in GHC 9.2.5 that could seriously impact runtime performance when compiling with optimisations due to duplication of expensive work (#22425).
- Fix a compiler panic in the simplifier due to a bad backport in GHC 9.2.5 (#22491).
- Fix a compiler panic in the simplifier that manifests when compiling with optimisations (#19824,:ghc-ticket:22482).
- Fix a compiler panic in the demand analyser due to a bug involving shadowing (#22718).
- Fix a compiler panic during the “Float In” optimsation pass due to improper handling of shadowing (#22662).
- Fix a compiler panic in the demand analyser (#22039).
- Fix a shadowing related bug in the occurence analysis phase of the simplifier (#22623).
- Fix a compiler bug where programs using Template Haskell involving Constant Applicative forms could be garbage collected too early (#22417).
- Fix a regression in the typechecker where certain typeclass instances involving type and data familes would fail to resolve (#22647).
- Fix the linker warning about chained fixups on Darwin platforms for programs compiled with GHC (#22429).
- Fix a bug with the graph-colouring register allocater leading to compiler panics when compiling with `-fregs-graph` (#22798).
- Fix a parser bug where certain keywords which could be used as variables were not allowed to be used with `OverloadedRecordDot` (#20723).
- Fix the location of some `Typeable` definitions from `GHC.Types` which resulted in poor error messages (#22510).
- Improve error messages involving non-exhaustive patterns when using `ApplicativeDo` (#22483).
- Fix a driver bug where certain non-fatal Safe Haskell related warnings were being marked as fatal (#22728).
- Fix a core lint error arises from incorrect scoping of type variables in specialise pragmas inside class instances (#22913).
- Improve typchecker performance for modules with holes in type signatures (#14766).

## 2.6.2. Runtime system

- Fix a GC bug where a race condition in the parallel GC could cause it to garbage collect live sparks (#22528).
- Truncate eventlog events with a large payload (#20221).
- A bug in the nonmoving garbage collector regarding the treatment of zero-length `SmallArray#`s has been fixed (#22264)
- A number of bugs regarding the non-moving garbage collector’s treatment of `Weak#` pointers have been fixed (#22327)
- A few race conditions between the non-moving collector and `setNumCapabilities` which could result in undefined behavior have been fixed (#22926, #22927)
- The non-moving collector is now able to better schedule marking work during the post-mark synchronization phase of collection, significantly reducing pause times in some workloads (#22929).
- Various bugs in the non-moving collector’s implementation of the selector optimisation have been fixed (#22930)

## 2.6.3. Build system and packaging

- Bump `gmp-tarballs` to a version which doesn’t use the reserved `x18` register on AArch64/Darwin systems, and also has fixes for CVE-2021-43618 (#22497, #22789).
- Include haddock documentation in interface files for hadrian generated bindists, including darwin platforms (#22734).

## 2.6.4. Core libraries

- Bump `bytestring` to 0.11.4.0.

## 2.6.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 | 9.2.6 | The compiler itself
Cabal | 3.6.3.0 | Dependency of `ghc-pkg` utility
Win32 | 2.12.0.1 | Dependency of `ghc` library
array | 0.5.4.0 | Dependency of `ghc` library
base | 4.16.4.0 | Core library
binary | 0.8.9.0 | Dependency of `ghc` library
bytestring | 0.11.4.0 | Dependency of `ghc` library
containers | 0.6.5.1 | Dependency of `ghc` library
deepseq | 1.4.6.1 | Dependency of `ghc` library
directory | 1.3.6.2 | Dependency of `ghc` library
exceptions | 0.10.4 | Dependency of `ghc` and `haskeline` library
filepath | 1.4.2.2 | Dependency of `ghc` library
ghc-boot-th | 9.2.6 | Internal compiler library
ghc-boot | 9.2.6 | Internal compiler library
ghc-compact | 0.1.0.0 | Core library
ghc-heap | 9.2.6 | GHC heap-walking library
ghc-prim | 0.8.0 | Core library
ghci | 9.2.6 | The REPL interface
haskeline | 0.8.2 | Dependency of `ghci` executable
hpc | 0.6.1.0 | Dependency of `hpc` executable
integer-gmp | 1.1 | Core library
libiserv | 9.2.6 | Internal compiler library
mtl | 2.2.2 | Dependency of `Cabal` library
parsec | 3.1.15.0 | Dependency of `Cabal` library
pretty | 1.1.3.6 | Dependency of `ghc` library
process | 1.6.16.0 | Dependency of `ghc` library
stm | 2.5.0.2 | Dependency of `haskeline` library
template-haskell | 2.18.0.0 | Core library
terminfo | 0.4.1.5 | Dependency of `haskeline` library
text | 1.2.5.0 | Dependency of `Cabal` library
time | 1.11.1.1 | 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