.. _release-9.6.6:

Version 9.6.6
==============

The significant changes to the various parts of the compiler are listed below.
See the `migration guide
<https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.6>`_ on the GHC Wiki
for specific guidance on migrating programs to this release.

The :ghc-flag:`LLVM backend <-fllvm>` of this release is to be used with LLVM
11, 12, 13, 14 or 15.

Significant Changes
~~~~~~~~~~~~~~~~~~~~

Issues fixed in this release include:

Compiler
--------

- Fix a bug in the NCG that could lead to incorrect runtime results due to
  erroneously removing a jump instruction (:ghc-ticket:`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 (:ghc-ticket:`22210`).
- Improve the algorithm used to detect missing home modules for the purpose of
  emitting warnings, making it no longer quadratic (:ghc-ticket:`24778`).
- Ensure ``-ddump-splices`` doesn't omit required parentheses when printing
  pattern signatures (:ghc-ticket:`24837`).
- Fix a possible alignment confusion in the code generator
  (:ghc-ticket:`24930`).
- Fix sign hints for the PowerPC NCG in C foreign calls (:ghc-ticket:`23034`).
- Fix a simplifier bug that could lead to compiler panics in certain sitations
  due to incorrect eta expansion (:ghc-ticket:`24718`).
- Fix a segfault in the bytecode interpreter due to incorrect constructor tagging
  (:ghc-ticket:`24870`).

Runtime system
--------------

- Fixes for various warnings emitted by ``UndefinedBehaviorSanitizer``. 
- Fix an argument ordering warning for ``stgCallocBytes`` (:ghc-ticket:`24828`).
- Fix a GC bug that manifests in certain situations when byte code objects end up
  on the mutable list (:ghc-ticket:`23375`).

Build system and packaging
--------------------------

- Allow hadrian to be bootstrapped using GHC 9.6 and Cabal 3.10.3 (:ghc-ticket:`24694`).
- The ``no_dynamic_libs`` flavour transformer now doesn't need users to also explicitly
  disable building a dynamic GHC.
- 

Core libraries
--------------

- Bump ``directory`` to 1.3.8.5