4. Release notes for version 8.2.2¶
The significant changes to the various parts of the compiler are listed in the following sections. This is a patch-level release which contains numerous bug-fixes over 8.2.1.
4.1. Highlights¶
The highlights since the 8.0 release include:
- Several important correctness issues fixing potential runtime crashes (Trac #13707, Trac #14346)
- A correctness issue leading to undefined behavior in some programs making use of STM (Trac #14717)
- A runtime system bug which may have manifested as a segmentation fault under low-memory conditions (Trac #14329)
ghc-pkg
now works correctly ihn environments with misconfigured NFS mounts (Trac #13945)- GHC can now produce position-independent executables (Trac #13702)
- Significantly improved type errors (Trac #11198, Trac #12373, Trac #13530, Trac #13610)
4.2. Full details¶
4.2.1. Package system¶
- Various Backpack fixes (Trac #14304)
4.2.2. Language¶
- Sum patterns are now considered to be non-irrefutable (Trac #14228).
-XApplicativeDo
is now able to more robustly deal withdo
blocks containing strict patterns (Trac #14163).
4.2.3. Compiler¶
- An implementation inconsistency leading to subtly typechecker panics with
-j ⟨n⟩
has been fixed.
- We now always link with
libm
. This fixesld.gold
on some platforms (e.g. NixOS) which demand that we declare all link dependencies. - We now link against
libpthread
instead oflibthr
on FreeBSD - Fix renamer bug triggered by typechecking
hs-boot
files containing orphan instances (Trac #14128) - The cost-center profiler’s event-log support now also supports breakdown by
closure type (
-hT
, Trac #14096) - A bug resulting in Core Lint failures for some programs using
-XStaticPointers
in GHCi has been fixed (Trac #13481) - The compiler now robustly handles constraint wildcards which expand to large tuple constraints (i.e. wider than 63 constraints)
- We now catch more inappropriate levity polymorphism (Trac #13929)
- A bug leading to data constructor fields having incorrect strictness signatures has been fixed (Trac #14290)
- An incorrect strictness signature for
retry#
which may result in undefined behavior at runtime has been fixed (Trac #14171) - A bug in the short-cut solver leading to an infinite in typechecking has been fixed (:ghc-tickets:`13943`)
- The compiler no longer panics when faced with
ByteArray#
arguments in aforeign import
- Over-zealous optimization of
Foreign.Marshal.Alloc.allocBytes[Aligned]
resulting in undefined behavior has been worked around (Trac #14346)
4.2.4. GHCi¶
- GHCi now behaves correctly when
Ctrl-C
is pressed on Windows (Trac #14150) - GHCi now takes a
-show-mods-loaded
flag to reenable showing of names of modules loaded by:load
(Trac #14427)
4.2.5. Build system¶
configure
now probesld.gold
even ifld.lld
is found yet- determined to be unusable (Trac #14280)
4.2.6. Runtime system¶
- Compact regions now support small pointer arrays (Trac #13860)
- The RTS can now load DLLs with with an empty import table on 32-bit Windows (Trac #14081)
- The
-po
flag now works; previously it existed but had no function.
4.2.7. hsc2hs¶
- Version number 0.68.2
4.3. Libraries¶
4.3.1. array¶
- Version number 0.5.2.0 (was 0.5.2.0)
4.3.2. base¶
See changelog.md
in the base
package for full release notes.
- Version number 4.10.1.0 (was 4.10.0.0)
clearBit :: Natural -> Natural
no longer bottoms (Trac #13203)- The file locking primitives provided by
GHC.IO.Handle
now use Linux open file descriptor locking if available.
4.3.3. binary¶
- Version number 0.8.5.1 (was 0.8.5.1)
4.3.4. bytestring¶
- Version number 0.10.8.2 (was 0.10.8.2)
4.3.5. Cabal¶
- Version number 2.0.1.0 (was 2.0.0.2)
4.3.6. containers¶
- Version number 0.5.10.2 (was 0.5.10.2)
4.3.7. deepseq¶
- Version number 1.4.3.0 (was 1.4.3.0)
4.3.8. directory¶
- Version number 1.3.0.2 (was 1.3.0.0)
4.3.9. filepath¶
- Version number 1.4.1.2 (was 1.4.1.2)
4.3.10. ghc¶
- Version number 8.2.2
4.3.11. ghc-boot¶
- This is an internal package. Use with caution.
4.3.12. ghc-compact¶
The ghc-compact
library provides an experimental API for placing immutable
data structures into a contiguous memory region. Data in these regions is not
traced during garbage collection and can be serialized to disk or over the
network.
- Version number 0.1.0.0 (was 0.1.0.0)
4.3.13. ghc-prim¶
- Version number 0.5.1.0 (was 0.5.1.0)
4.3.14. hoopl¶
- Version number 3.10.2.2 (was 3.10.2.2)
4.3.15. hpc¶
- Version number 0.6.0.3 (was 0.6.0.3)
4.3.16. integer-gmp¶
- Version number 1.0.1.0 (was 1.0.0.1)
4.3.17. process¶
- Version number 1.6.1.0 (was 1.6.1.0)
4.3.18. template-haskell¶
- Version 2.12.0.0 (was 2.12.0.0)
4.3.19. time¶
- Version number 1.8.0.2 (was 1.8.0.2)
4.3.20. unix¶
- Version number 2.7.2.2 (was 2.7.2.2)
4.3.21. Win32¶
- Version number 2.5.4.1 (was 2.5.4.1)
4.4. Known bugs¶
None, happily.