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-allare 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
-XDerivingStrategieslanguage extension (see Deriving strategies).
3.2.3. GHCi¶
- TODO FIXME.
- Added
-flocal-ghci-historywhich uses current directory for .ghci-history.
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 #)intoInt.
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.Eithernow providesfromLeftandfromRightData.Type.Coercionnow providesgcoerceWith, which is analogous togcastWithfromData.Type.Equality.- The
Read1andRead2classes inData.Functor.Classeshave new methods,liftReadList(2)andliftReadListPrec(2), that are defined in terms ofReadPrecinstead ofReadS. This matches the interface provided in GHC’s version of theReadclass, and allows users to write more efficientRead1andRead2instances.
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#andisMutableByteArrayPinned#operation. - New function
noinlineinGHC.Magiclets 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