2.2. Version 9.4.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 10, 11, 12, 13, or 14.

2.2.1. Significant Changes

Issues fixed in this release include:

2.2.1.1. Compiler

  • Fix a bug where certain dictionaries for undecidable instances could end up looping at runtime (#22549).
  • Fix a compiler panic involving newtype family instances (:ghc-ticket:`23329).
  • Fix a bug preventing using the command line to compile .cmm files to assembly (#23610).
  • Fix compiler panics with certain RULE pragmas (#23208, #22761).
  • Fix a loop in the simplifier due to a bug in the representation of certain fields in interface files (#22272).
  • Make type equality (~) checks in the presence of quantified contrains more robust to argument ordering (#23333).
  • Fix some segfaults when using UnliftedDataTypes (#23231, #23146).
  • Improve bounds checking with -fcheck-prim-bounds (#21054).
  • Fix a bug in the simplifier leading to core lint errors (#23012).
  • Ensure array read operations have proper memory barries (#23541).
  • Fix a spurious -dcore-lint failure with certain kinds of type family instances (#22547).
  • Fix a bug with .hie files containing spurious references to generated functions in files with partial field selectors (#23492).
  • With the aarch64 backend, fix a bug arising from lack of zero-extension for 8/16 bit add/sub with immediate (#23749).
  • Fix a number of bugs having to do with default representation polymorphic type variables (#23153, #23154, #23176).

2.2.1.2. GHCi and Bytecode Interpreter

  • Add support for top-level Addr# literals (#22376)
  • Fix some tag inference bugs when using the bytecode interpreter (#22840).
  • Support the foreign import prim calling convention in the bytecode interpreter (#22051).
  • Support sized literals in the bytecode interpreter (#21945).
  • Fix a bug with the handling of unboxed tuples in the bytecode interpreter (#23068).
  • Make the bytecode interpreter more robust when run on optimised code (#22958)

2.2.1.3. Runtime system

  • Accurately account for mutator allocations when using the non-moving GC (#23312).
  • Prevent some segfaults by ensuring that pinned allocations respect block size (#23400).
  • Fix warnings with clang 14.0.3 (#23561).
  • On Windows, ensure reliability of IO manager shutdown (#23691).
  • Fix a bug with the GHC linker on windows (#22941).

2.2.1.4. Build system and packaging

  • Allow building documentation with sphinx 6.0.0 (#22690).
  • Fix a bug with the install scripts that prevented reinstallation of binary distributions (#23373).
  • Fix some dependency tracking bugs with hadrian (#23554).

2.2.1.5. Core libraries

  • Bump base to 4.17.2.0
  • base: Restore``mingwex`` dependency on Windows (#23309).
  • Bump process to 1.6.17.0
  • Bump bytestring to 0.11.5.1

2.2.1.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.4.7 The compiler itself
Cabal-syntax 3.8.1.0 Dependency of ghc-pkg utility
Cabal 3.8.1.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.17.2.0 Core library
binary 0.8.9.1 Dependency of ghc library
bytestring 0.11.5.2 Dependency of ghc library
containers 0.6.7 Dependency of ghc library
deepseq 1.4.8.0 Dependency of ghc library
directory 1.3.7.1 Dependency of ghc library
exceptions 0.10.5 Dependency of ghc and haskeline library
filepath 1.4.2.2 Dependency of ghc library
ghc-boot-th 9.4.7 Internal compiler library
ghc-boot 9.4.7 Internal compiler library
ghc-compact 0.1.0.0 Core library
ghc-heap 9.4.7 GHC heap-walking library
ghc-prim 0.9.1 Core library
ghci 9.4.7 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.4.7 Internal compiler library
mtl 2.2.2 Dependency of Cabal library
parsec 3.1.16.1 Dependency of Cabal library
pretty 1.1.3.6 Dependency of ghc library
process 1.6.17.0 Dependency of ghc library
stm 2.5.1.0 Dependency of haskeline library
template-haskell 2.19.0.0 Core library
terminfo 0.4.1.5 Dependency of haskeline library
text 2.0.2 Dependency of Cabal library
time 1.12.2 Dependency of ghc library
transformers 0.5.6.2 Dependency of ghc library
unix 2.7.3 Dependency of ghc library
xhtml 3000.2.2.1 Dependency of haddock executable