2.3. Version 9.8.3¶
The LLVM backend
of this release is to be used with LLVM
11, 12, 13, 14 or 15.
2.3.1. Significant Changes¶
Issues fixed in this release include:
2.3.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 native code generator miscompilation of signed sub-word arguments of FFI calls on x86 (#25018)
- 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) - Fix miscompilation by x86 native code generator due to shortcutting (#24507)
- Fix uses of
(~)
and(@)
being rejected inTemplateHaskell
splices (#23748)
2.3.1.2. Runtime system¶
- Significantly improve performance of code loading via dynamic linking (#23415)
- Internal fragmentation incurred by the non-moving garbage collector’s allocator has been reduced for small objects.
In one real-world application, this has reduced resident set size by about 20% and modestly improved run-time.
See #23340.
--nonmoving-dense-allocator-count=⟨count⟩
has been added to fine-tune this behaviour. - Fix runtime crash of the
nonmoving garbage collector
due to weak pointers with static key (#24492) - Allow heap profiling when the
--nonmoving-gc
is in use
2.3.1.5. base
¶
- Bump version to 4.19.2.0
- Fix spurious closing of file descriptors after
fork
on platforms using the KQueue event manager backend (#24672)
2.3.1.7. Other Core Libraries¶
- Bump
stm
to 2.5.3.1 - Bump
deepseq
to 1.5.1.0 - Bump
array
to 0.5.8.0 - Bump
Cabal
to 3.10.3.0 - Bump
directory
to 1.3.8.5 - Bump
process
to 1.6.25.0
2.3.1.8. 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.8.4 | 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.4.0 | Dependency of ghc library |
array | 0.5.8.0 | Dependency of ghc library |
base | 4.19.2.0 | Core library |
binary | 0.8.9.1 | Dependency of ghc library |
bytestring | 0.12.1.0 | Dependency of ghc library |
containers | 0.6.8 | Dependency of ghc library |
deepseq | 1.5.1.0 | 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.8.4 | Internal compiler library |
ghc-boot | 9.8.4 | Internal compiler library |
ghc-compact | 0.1.0.0 | Core library |
ghc-heap | 9.8.4 | GHC heap-walking library |
ghc-prim | 0.11.0 | Core library |
ghci | 9.8.4 | The REPL interface |
haskeline | 0.8.2.1 | Dependency of ghci executable |
hpc | 0.7.0.0 | Dependency of hpc executable |
integer-gmp | 1.1 | Core library |
mtl | 2.3.1 | Dependency of Cabal library |
parsec | 3.1.17.0 | Dependency of Cabal library |
pretty | 1.1.3.6 | Dependency of ghc library |
process | 1.6.25.0 | Dependency of ghc library |
semaphore-compat | 1.0.0 | Dependency of ghc library |
stm | 2.5.3.1 | Dependency of haskeline library |
template-haskell | 2.21.0.0 | Core library |
terminfo | 0.4.1.6 | Dependency of haskeline library |
text | 2.1.1 | 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 |