Table Of Contents

Previous topic

3. Release notes for version 8.2.1

Next topic

5. Using GHCi

This Page

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

4.2.2. Language

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 fixes ld.gold on some platforms (e.g. NixOS) which demand that we declare all link dependencies.

  • We now link against libpthread instead of libthr 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 a foreign 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 probes ld.gold even if ld.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.