3 Release notes for version 8.2.1
4 ===============================
6 The significant changes to the various parts of the compiler are listed
7 in the following sections. There have also been numerous bug fixes and
8 performance improvements over the 8.0 branch.
13 The highlights since the 8.0 branch are:
16 - SCC annotations can now be used for declarations.
26 - Pattern synonym signatures can now be applied to multiple patterns, just like
27 value-level binding signatures. See :ref:`patsyn-typing` for details.
34 - Old profiling flags ``-auto-all``, ``-auto``, and ``-caf-all`` are deprecated
35 and their usage provokes a compile-time warning.
37 - Support for adding cost centres to declarations is added. The same `SCC`
38 syntax can be used, in addition to a new form for specifying the cost centre
39 name. See :ref:`scc-pragma` for examples.
46 - Added :ghc-flag:`-flocal-ghci-history` which uses current directory for `.ghci-history`.
53 - ``addModFinalizer`` now exposes the local typing environment at the splice
54 point. This allows ``reify`` to see local and top-level definitions in the
55 current declaration group when used as in
59 f x = $(addModFinalizer (reify 'x >>= runIO . print) >> [| x |])
61 - Reifying types that contain unboxed tuples now works correctly. (Previously,
62 Template Haskell reified unboxed tuples as boxed tuples with twice their
65 - Splicing singleton unboxed tuple types (e.g., ``(# Int #)``) now works
66 correctly. Previously, Template Haskell would implicitly remove the
67 parentheses when splicing, which would turn ``(# Int #)`` into ``Int``.
74 - The :ref:`heap profiler <prof-heap>` can now emit heap census data to the GHC
75 event log, allowing heap profiles to be correlated with other tracing events
76 (see :ghc-ticket:`11094`).
99 - Version number XXXXX (was 0.5.0.0)
107 See ``changelog.md`` in the ``base`` package for full release notes.
109 - Version number 4.10.0.0 (was 4.9.0.0)
111 - ``Data.Either`` now provides ``fromLeft`` and ``fromRight``
113 - ``Data.Type.Coercion`` now provides ``gcoerceWith``, which is analogous to
114 ``gcastWith`` from ``Data.Type.Equality``.
116 - The ``Read1`` and ``Read2`` classes in ``Data.Functor.Classes`` have new
117 methods, ``liftReadList(2)`` and ``liftReadListPrec(2)``, that are defined in
118 terms of ``ReadPrec`` instead of ``ReadS``. This matches the interface
119 provided in GHC's version of the ``Read`` class, and allows users to write
120 more efficient ``Read1`` and ``Read2`` instances.
125 - Version number XXXXX (was 0.7.1.0)
130 - Version number XXXXX (was 0.10.4.0)
135 - Version number XXXXX (was 1.18.1.3)
140 - Version number XXXXX (was 0.5.4.0)
145 - Version number XXXXX (was 1.3.0.2)
150 - Version number XXXXX (was 1.2.0.2)
155 - Version number XXXXX (was 1.3.0.2)
160 - The ``GHC.initGhcMonad`` function no longer installs signal handlers by
161 default. This means that the RTS won't attempt to handle Ctrl-C gracefully.
162 If you would like to use GHC's signal handlers, call
163 ``GHC.installSignalHandlers`` during initialization.
168 - This is an internal package. Use with caution.
175 - Version number XXXXX (was 0.3.1.0)
177 - Added new ``isByteArrayPinned#`` and ``isMutableByteArrayPinned#`` operation.
179 - New function ``noinline`` in ``GHC.Magic`` lets you mark that a function
180 should not be inlined. It is optimized away after the simplifier runs.
185 - Version number XXXXX (was 2.0.0.3)
190 - Version number XXXXX (was 1.1.1.1)
195 - Version number XXXXX (was 3.10.0.0)
200 - Version number XXXXX (was 0.6.0.1)
205 - Version number XXXXX (was 0.5.1.0)
210 - Version number XXXXX (was 1.0.0.6)
215 - Version number XXXXX (was 1.1.0.2)
220 - Version number XXXXX (was 1.2.0.0)
225 - Version number XXXXX (was 2.9.0.0)
227 - Added support for unboxed sums :ghc-ticket:`12478`.
229 - Added support for visible type applications :ghc-ticket:`12530`.
234 - Version number XXXXX (was 1.4.1)
239 - Version number XXXXX (was 2.7.0.0)
244 - Version number XXXXX (was 2.3.0.1)