6. Release notes for version 8.8.4¶
GHC 8.8.4 is a minor release intended to fix regressions and minor bugs in the 8.8.1, 8.8.2 and 8.8.3 releases.
Like previous releases in the 8.8 series, the LLVM backend
of this release is to be used with LLVM 7.
6.1. Highlights¶
Fixes a bug in process creation on Windows (Issue #17926).
Works around a Linux kernel bug in the implementation of
timerfds (Issue #18033).Fixes a few linking issues affecting ARM
Fixes “missing interface file” error triggered by some uses of
Ordering(Issue #18185)Fixes an integer overflow in the compact-normal-form import implementation (Issue #16992)
configurenow accepts--enable-numaflag to enable/disablenumactlsupport on Linux.Fixes potentially lost sharing due to the desugaring of left operator sections (Issue #18151).
Fixes a build-system bug resulting in potential miscompilation by unregisteised compilers (Issue #18024)
6.2. Known issues¶
A long-standing bug (Issue #16893) which can cause some applications of
unsafeCoerceto segmentation fault is only partially fixed in this release. This release only avoids this issue in the uses ofunsafeCoerceinData.Typeable.Internal, which was the proximate cause of Issue #16893.However, it is possible that this bug could manifest in user-code using
unsafeCoerceto perform dynamic type checks. See the ticket for details.The simplifier can optimise away some applications of the
touch#primop when it can prove that thetouch#is unreachable due to divergence or synchronous exception, resulting in memory unsoundness. Users requiringtouch#behavior are advised to only usetouch#to implement continuation-passing-style primitives (e.g. in the style ofwithForeignPtr) bearingNOINLINEpragmas (to avoid inappropriate simplification). See Issue #17760 for details.
6.3. 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 |
8.8.4 | The compiler itself |
Cabal |
3.0.1.0 | Dependency of |
Win32 |
2.6.1.0 | Dependency of |
array |
0.5.4.0 | Dependency of |
base |
4.13.0.0 | Core library |
binary |
0.8.7.0 | Dependency of |
bytestring |
0.10.10.1 | Dependency of |
containers |
0.6.2.1 | Dependency of |
deepseq |
1.4.4.0 | Dependency of |
directory |
1.3.6.0 | Dependency of |
filepath |
1.4.2.1 | Dependency of |
ghc-boot-th |
8.8.4 | Internal compiler library |
ghc-boot |
8.8.4 | Internal compiler library |
ghc-compact |
0.1.0.0 | Core library |
ghc-heap |
8.8.4 | GHC heap-walking library |
ghc-prim |
0.5.3 | Core library |
ghci |
8.8.4 | The REPL interface |
haskeline |
0.7.5.0 | Dependency of |
hpc |
0.6.0.3 | Dependency of |
integer-gmp |
1.0.2.0 | Core library |
libiserv |
8.8.4 | Internal compiler library |
mtl |
2.2.2 | Dependency of |
parsec |
3.1.14.0 | Dependency of |
pretty |
1.1.3.6 | Dependency of |
process |
1.6.9.0 | Dependency of |
stm |
2.5.0.0 | Dependency of |
template-haskell |
2.15.0.0 | Core library |
terminfo |
0.4.1.4 | Dependency of |
text |
1.2.4.0 | Dependency of |
time |
1.9.3 | Dependency of |
transformers |
0.5.6.2 | Dependency of |
unix |
2.7.2.2 | Dependency of |
xhtml |
3000.2.2.1 | Dependency of |