2.6. Version 9.6.6

The significant changes to the various parts of the compiler are listed below. See the migration guide on the GHC Wiki for specific guidance on migrating programs to this release.

The LLVM backend of this release is to be used with LLVM 11, 12, 13, 14 or 15.

2.6.1. Significant Changes

Issues fixed in this release include:

2.6.1.1. Compiler

  • Fix a bug in the NCG that could lead to incorrect runtime results due to erroneously removing a jump instruction (#24507).

  • Fix a bug leading to runtime exponential in the size of the package dependency graph when checking if a multiple home unit session satisfied the closure property.

  • Fix a bug arising from interactions between GHC and cabal in how they call the linker to merge objects, resulting in linker errors in certain situations (#22210).

  • Improve the algorithm used to detect missing home modules for the purpose of emitting warnings, making it no longer quadratic (#24778).

  • Ensure -ddump-splices doesn’t omit required parentheses when printing pattern signatures (#24837).

  • Fix a possible alignment confusion in the code generator (#24930).

  • Fix sign hints for the PowerPC NCG in C foreign calls (#23034).

  • Fix a simplifier bug that could lead to compiler panics in certain sitations due to incorrect eta expansion (#24718).

  • Fix a segfault in the bytecode interpreter due to incorrect constructor tagging (#24870).

2.6.1.2. Runtime system

  • Fixes for various warnings emitted by UndefinedBehaviorSanitizer.

  • Fix an argument ordering warning for stgCallocBytes (#24828).

  • Fix a GC bug that manifests in certain situations when byte code objects end up on the mutable list (#23375).

2.6.1.3. Build system and packaging

  • Allow hadrian to be bootstrapped using GHC 9.6 and Cabal 3.10.3 (#24694).

  • The no_dynamic_libs flavour transformer now doesn’t need users to also explicitly disable building a dynamic GHC.

2.6.1.4. Core libraries

  • Bump directory to 1.3.8.5

2.6.1.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.6.6

The compiler itself

Cabal-syntax

3.10.3.0

Dependency of ghc-pkg utility

Cabal

3.10.3.0

Dependency of ghc-pkg utility

Win32

2.13.3.0

Dependency of ghc library

array

0.5.6.0

Dependency of ghc library

base

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

Dependency of ghc library

directory

1.3.8.5

Dependency of ghc library

exceptions

0.10.7

Dependency of ghc and haskeline library

filepath

1.4.300.1

Dependency of ghc library

ghc-boot-th

9.6.6

Internal compiler library

ghc-boot

9.6.6

Internal compiler library

ghc-compact

0.1.0.0

Core library

ghc-heap

9.6.6

GHC heap-walking library

ghc-prim

0.10.0

Core library

ghci

9.6.6

The REPL interface

haskeline

0.8.2.1

Dependency of ghci executable

hpc

0.6.2.0

Dependency of hpc executable

integer-gmp

1.1

Core library

libiserv

9.6.6

Internal compiler library

mtl

2.3.1

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

Dependency of ghc library

stm

2.5.1.0

Dependency of haskeline library

template-haskell

2.20.0.0

Core library

terminfo

0.4.1.6

Dependency of haskeline library

text

2.0.2

Dependency of Cabal library

time

1.12.2

Dependency of ghc library

transformers

0.6.1.0

Dependency of ghc library

unix

2.8.4.0

Dependency of ghc library

xhtml

3000.2.2.1

Dependency of haddock executable