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-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 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
TypeDataandStrictDataare in use (#24620) - Fix miscompilation by x86 native code generator due to shortcutting (#24507)
- Fix uses of
(~)and(@)being rejected inTemplateHaskellsplices (#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 collectordue to weak pointers with static key (#24492) - Allow heap profiling when the
--nonmoving-gcis in use
2.3.1.5. base¶
- Bump version to 4.19.2.0
- Fix spurious closing of file descriptors after
forkon platforms using the KQueue event manager backend (#24672)
2.3.1.7. Other Core Libraries¶
- Bump
stmto 2.5.3.1 - Bump
deepseqto 1.5.1.0 - Bump
arrayto 0.5.8.0 - Bump
Cabalto 3.10.3.0 - Bump
directoryto 1.3.8.5 - Bump
processto 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.3 | 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.200.1 | Dependency of ghc library |
| ghc-boot-th | 9.8.3 | Internal compiler library |
| ghc-boot | 9.8.3 | Internal compiler library |
| ghc-compact | 0.1.0.0 | Core library |
| ghc-heap | 9.8.3 | GHC heap-walking library |
| ghc-prim | 0.11.0 | Core library |
| ghci | 9.8.3 | 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.4.0 | Dependency of ghc library |
| xhtml | 3000.2.2.1 | Dependency of haddock executable |