2.3. Version 9.2.3 — Glasgow Haskell Compiler 9.2.6 User's Guide

# 2.3. Version 9.2.3

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.3.1. Compiler

- Fix a bug causing compiler panics on certain RULE declarations (#20820).
- Fix a typechecker regression on certain programs involving type families and type equality constraints (#21473, #21515).
- Fix a typechecker regression affecting programs involving quantified constraints and superclasses (#20582)
- Fix a typechecker bug causing compiler panics on certain programs involing GADTs and Type Families (#20820).
- Fix a typechecker panic on certain programs involving typed holes (#21130).
- Fix a typechecker panic arising from uninferrable variables in a pattern synonym (#21479).
- Various other typechecker bug fixes (#21531, #21516, #21519).
- Ensure that XMM registers are preserved according to the calling convention on Win64 (#21465).
- Fix a bug in the STG pipeline leading to segfaults in certain situations (#21396).
- Fix a code generator bug causing CAFs to be incorrectly GC’d (#20959).
- Improve error messages for OverloadedRecordFields in the case of ambiguous fields (#17420).
- Improve warnings for redundant constraints (#20602).

## 2.3.2. Runtime system

- Fix a bug with RTS accounting resulting in computing incorrect and negative productivity stats (#21082).

## 2.3.3. GHCi

- Fix a bug causing certain type signatures to be pretty printed in a unpleasant way (#20974).

## 2.3.4. Core libraries

- Bump `bytestring` to 0.11.3.1 fixing a critical linking bug causing GHC 9.2.2 to be unusable on Windows (#21196).
- `base`: Export GHC.Event.Internal on Windows (#21245).

## 2.3.5. Build system and packaging

- Use POSIX compatible shell syntax for redirecting output during configure (#20760).
- Only copy and install libffi headers when using in-tree libffi (#21485, #21487).
- Add support for bootstrapping hadrian without needing `cabal-install`.
- Allow installing hadrian generated binary distributions to paths including the string “xxx” (#21402)
- Allow bootstrapping from GHC 9.2.
- Allow running the testsuite using Python 3.10.

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