2.7. Version 9.6.7¶
The LLVM backend of this release is to be used with LLVM
11, 12, 13, 14 or 15.
2.7.1. Significant Changes¶
Issues fixed in this release include:
2.7.1.1. Compiler¶
- Fixed a bug that caused GHC to panic when using the AArch64 ncg and
-fregs-graphon certain programs (#24941). - Fix invalid optimisation of Cmm programs on 32-bit platforms when targetting 64-bit targets (#24893 and #24700).
- Improve float-out surrounding applications of
runRW#(#25055). - Fix
-fregs-graphcrash when targetting AArch64 (#24941). - Fix code generation of foreign exports with more than 6 arguments when some are subword-width (#24314).
- Fix recompilation avoidance behavior of
-fwrite-if-simplified-core(#24656). - Fix linking error when
TypeDataandStrictDataare in use (#24620). -Wmissing-home-modulesnow behaves correctly when multiple units have expose the same module name (#25122).- Adjust the demand signature of the
prompt#to avoid invalid optimisation of non-terminating programs (#25439). - GHC’s internal
Uniquetype has been widened to 64-bits on 32-bit architectures, avoiding potential miscompilations on large projects (#22010). - Fix LLVM version detection on newer LLVM versions (#25606).
- Determine
max_n_capabilitiesat RTS startup, removing the previous static cap at 256 (#25560). - Fix out-of-bounds memory mapping logic, resolving an infinite loop on FreeBSD (#25492).
- Find C++ probing when GCC version is the latest but G++ is old (#23118).
- Consider Wanteds with rewriters as insoluble, fixing a situation where the program fails to typecheck but no errors are reported (#25325).
- Fix x86 NCG foreign argument promotion. The x86 NCG now correctly promotes 8 bit and 16 bits arguments by sign extension (#25018).
- Fix GHC flag
-working-dirfor foreign files (#25150). - Added new flags
-fspec-evaland-fspec-eval-dictfunto allow switching off speculative evaluation (#25284). - Fix a runtime crash when using the compacting GC, caused by black holes in large objects (#24791).
2.7.1.2. Hadrian and builds¶
- Bump the minimum version of the directory dependency for Hadrian to 1.3.9.0 to avoid a race condition on Windows (##24382). Also updated the bootstrap build plans for hadrian.
- Hadrian: Set -this-package-name. This fixes package imports for ghci-multi and was required to update the unix package.
- Add Ubuntu 22.04 builds for nightlies and release (#25317).
2.7.1.4. base¶
- Bump version to 4.18.2.2
- Fix spurious closing of file descriptors after
forkon platforms using the KQueue event manager backend (#24672), visible on FreeBSD.
2.7.1.5. Other Core Libraries¶
- The
filepathlibrary has been upgraded to 1.4.301.0, fixing a potentially exploitable behavior withsplitFileNameon Windows (#24597). unix-2.8.6.0is included, fixing an issue affectingmusltargets.bytestringhas been upgraded to 0.11.5.4, fixing a race condition intoLazyByteStringthat could generate wrong results if two threads concurrently evaluated the result.
arrayhas been upgraded to 0.5.8.0.ghc-bignum: the bundled gmp library has been upgraded to 6.3.0.
2.7.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.6.7.20250131 | 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.8.0 | Dependency of ghc library |
| base | 4.18.3.0 | Core library |
| binary | 0.8.9.1 | Dependency of ghc library |
| bytestring | 0.11.5.4 | 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.301.0 | Dependency of ghc library |
| ghc-boot-th | 9.6.7.20250131 | Internal compiler library |
| ghc-boot | 9.6.7.20250131 | Internal compiler library |
| ghc-compact | 0.1.0.0 | Core library |
| ghc-heap | 9.6.7.20250131 | GHC heap-walking library |
| ghc-prim | 0.10.0 | Core library |
| ghci | 9.6.7.20250131 | 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.7.20250131 | 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.6.0 | Dependency of ghc library |
| xhtml | 3000.2.2.1 | Dependency of haddock executable |