3. Release notes for version 8.2.1

The significant changes to the various parts of the compiler are listed in the following sections. There have also been numerous bug fixes and performance improvements over the 8.0 branch.

3.1. Highlights

The highlights since the 8.0 branch are:

  • TODO FIXME
  • SCC annotations can now be used for declarations.

3.2. Full details

3.2.1. Language

  • TODO FIXME.
  • Pattern synonym signatures can now be applied to multiple patterns, just like value-level binding signatures. See Typing of pattern synonyms for details.

3.2.2. Compiler

  • TODO FIXME.
  • Old profiling flags -auto-all, -auto, and -caf-all are deprecated and their usage provokes a compile-time warning.
  • Support for adding cost centres to declarations is added. The same SCC syntax can be used, in addition to a new form for specifying the cost centre name. See Inserting cost centres by hand for examples.
  • It is now possible to explicitly pick a strategy to use when deriving a class instance using the -XDerivingStrategies language extension (see Deriving strategies).

3.2.3. GHCi

3.2.4. Template Haskell

  • TODO FIXME.
  • Reifying types that contain unboxed tuples now works correctly. (Previously, Template Haskell reified unboxed tuples as boxed tuples with twice their appropriate arity.)
  • Splicing singleton unboxed tuple types (e.g., (# Int #)) now works correctly. Previously, Template Haskell would implicitly remove the parentheses when splicing, which would turn (# Int #) into Int.

3.2.5. Runtime system

  • TODO FIXME.
  • The heap profiler can now emit heap census data to the GHC event log, allowing heap profiles to be correlated with other tracing events (see Trac #11094).
  • Added NUMA support to Windows.
  • Added processor group support for Windows. This allows the runtime to allocate threads to all cores in systems which have multiple processor groups. (e.g. > 64 cores, see Trac #11054)

3.2.6. Build system

  • TODO FIXME.

3.2.7. Package system

  • TODO FIXME.

3.2.8. hsc2hs

  • TODO FIXME.

3.3. Libraries

3.3.1. array

  • Version number XXXXX (was 0.5.0.0)

3.3.2. base

See changelog.md in the base package for full release notes.

  • Version number 4.10.0.0 (was 4.9.0.0)
  • Data.Either now provides fromLeft and fromRight
  • Data.Type.Coercion now provides gcoerceWith, which is analogous to gcastWith from Data.Type.Equality.
  • The Read1 and Read2 classes in Data.Functor.Classes have new methods, liftReadList(2) and liftReadListPrec(2), that are defined in terms of ReadPrec instead of ReadS. This matches the interface provided in GHC’s version of the Read class, and allows users to write more efficient Read1 and Read2 instances.

3.3.3. binary

  • Version number XXXXX (was 0.7.1.0)

3.3.4. bytestring

  • Version number XXXXX (was 0.10.4.0)

3.3.5. Cabal

  • Version number XXXXX (was 1.18.1.3)

3.3.6. containers

  • Version number XXXXX (was 0.5.4.0)

3.3.7. deepseq

  • Version number XXXXX (was 1.3.0.2)

3.3.8. directory

  • Version number XXXXX (was 1.2.0.2)

3.3.9. filepath

  • Version number XXXXX (was 1.3.0.2)

3.3.10. ghc

3.3.11. ghc-boot

  • This is an internal package. Use with caution.
  • TODO FIXME.

3.3.12. ghc-prim

  • Version number XXXXX (was 0.3.1.0)
  • Added new isByteArrayPinned# and isMutableByteArrayPinned# operation.
  • New function noinline in GHC.Magic lets you mark that a function should not be inlined. It is optimized away after the simplifier runs.

3.3.13. haskell98

  • Version number XXXXX (was 2.0.0.3)

3.3.14. haskell2010

  • Version number XXXXX (was 1.1.1.1)

3.3.15. hoopl

  • Version number XXXXX (was 3.10.0.0)

3.3.16. hpc

  • Version number XXXXX (was 0.6.0.1)

3.3.17. integer-gmp

  • Version number XXXXX (was 0.5.1.0)

3.3.18. old-locale

  • Version number XXXXX (was 1.0.0.6)

3.3.19. old-time

  • Version number XXXXX (was 1.1.0.2)

3.3.20. process

  • Version number XXXXX (was 1.2.0.0)

3.3.21. template-haskell

  • Version number XXXXX (was 2.9.0.0)
  • Added support for unboxed sums Trac #12478.
  • Added support for visible type applications Trac #12530.

3.3.22. time

  • Version number XXXXX (was 1.4.1)

3.3.23. unix

  • Version number XXXXX (was 2.7.0.0)

3.3.24. Win32

  • Version number XXXXX (was 2.3.0.1)

3.4. Known bugs

  • TODO FIXME