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-graph
on 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-graph
crash 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
TypeData
andStrictData
are in use (#24620). -Wmissing-home-modules
now 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
Unique
type 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_capabilities
at 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-dir
for foreign files (#25150). - Added new flags
-fspec-eval
and-fspec-eval-dictfun
to 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
fork
on platforms using the KQueue event manager backend (#24672), visible on FreeBSD.
2.7.1.5. Other Core Libraries¶
- The
filepath
library has been upgraded to 1.4.301.0, fixing a potentially exploitable behavior withsplitFileName
on Windows (#24597). unix-2.8.6.0
is included, fixing an issue affectingmusl
targets.bytestring
has been upgraded to 0.11.5.4, fixing a race condition intoLazyByteString
that could generate wrong results if two threads concurrently evaluated the result.
array
has 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 | 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 | Internal compiler library |
ghc-boot | 9.6.7 | Internal compiler library |
ghc-compact | 0.1.0.0 | Core library |
ghc-heap | 9.6.7 | GHC heap-walking library |
ghc-prim | 0.10.0 | Core library |
ghci | 9.6.7 | 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 | 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 |