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¶
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 |