2.3. 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.3.1. Significant Changes

Issues fixed in this release include:

2.3.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.3.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.3.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.3.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.3.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.3.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.8

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.1

Core library

binary

0.8.9.1

Dependency of ghc library

bytestring

0.11.5.3

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.8

Internal compiler library

ghc-boot

9.4.8

Internal compiler library

ghc-compact

0.1.0.0

Core library

ghc-heap

9.4.8

GHC heap-walking library

ghc-prim

0.9.1

Core library

ghci

9.4.8

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.8

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.18.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