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