Add -flocal-ghci-history flag (#9089).
[ghc.git] / docs / users_guide / 8.2.1-notes.rst
1 .. _release-8-2-1:
2
3 Release notes for version 8.2.1
4 ===============================
5
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.
9
10 Highlights
11 ----------
12
13 The highlights since the 8.0 branch are:
14
15 - TODO FIXME
16 - SCC annotations can now be used for declarations.
17
18 Full details
19 ------------
20
21 Language
22 ~~~~~~~~
23
24 -  TODO FIXME.
25
26 - Pattern synonym signatures can now be applied to multiple patterns, just like
27   value-level binding signatures. See :ref:`patsyn-typing` for details.
28
29 Compiler
30 ~~~~~~~~
31
32 -  TODO FIXME.
33
34 - Old profiling flags ``-auto-all``, ``-auto``, and ``-caf-all`` are deprecated
35   and their usage provokes a compile-time warning.
36
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.
40
41 GHCi
42 ~~~~
43
44 -  TODO FIXME.
45
46 - Added :ghc-flag:`-flocal-ghci-history` which uses current directory for `.ghci-history`.
47
48 Template Haskell
49 ~~~~~~~~~~~~~~~~
50
51 -  TODO FIXME.
52
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
56
57   .. code-block:: none
58
59       f x = $(addModFinalizer (reify 'x >>= runIO . print) >> [| x |])
60
61 -  Reifying types that contain unboxed tuples now works correctly. (Previously,
62    Template Haskell reified unboxed tuples as boxed tuples with twice their
63    appropriate arity.)
64
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``.
68
69 Runtime system
70 ~~~~~~~~~~~~~~
71
72 -  TODO FIXME.
73
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`).
77
78 Build system
79 ~~~~~~~~~~~~
80
81 -  TODO FIXME.
82
83 Package system
84 ~~~~~~~~~~~~~~
85
86 -  TODO FIXME.
87
88 hsc2hs
89 ~~~~~~
90
91 -  TODO FIXME.
92
93 Libraries
94 ---------
95
96 array
97 ~~~~~
98
99 -  Version number XXXXX (was 0.5.0.0)
100
101
102 .. _lib-base:
103
104 base
105 ~~~~
106
107 See ``changelog.md`` in the ``base`` package for full release notes.
108
109 -  Version number 4.10.0.0 (was 4.9.0.0)
110
111 - ``Data.Either`` now provides ``fromLeft`` and ``fromRight``
112
113 - ``Data.Type.Coercion`` now provides ``gcoerceWith``, which is analogous to
114   ``gcastWith`` from ``Data.Type.Equality``.
115
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.
121
122 binary
123 ~~~~~~
124
125 -  Version number XXXXX (was 0.7.1.0)
126
127 bytestring
128 ~~~~~~~~~~
129
130 -  Version number XXXXX (was 0.10.4.0)
131
132 Cabal
133 ~~~~~
134
135 -  Version number XXXXX (was 1.18.1.3)
136
137 containers
138 ~~~~~~~~~~
139
140 -  Version number XXXXX (was 0.5.4.0)
141
142 deepseq
143 ~~~~~~~
144
145 -  Version number XXXXX (was 1.3.0.2)
146
147 directory
148 ~~~~~~~~~
149
150 -  Version number XXXXX (was 1.2.0.2)
151
152 filepath
153 ~~~~~~~~
154
155 -  Version number XXXXX (was 1.3.0.2)
156
157 ghc
158 ~~~
159
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.
164
165 ghc-boot
166 ~~~~~~~~
167
168 -  This is an internal package. Use with caution.
169
170 -  TODO FIXME.
171
172 ghc-prim
173 ~~~~~~~~
174
175 -  Version number XXXXX (was 0.3.1.0)
176
177 -  Added new ``isByteArrayPinned#`` and ``isMutableByteArrayPinned#`` operation.
178
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.
181
182 haskell98
183 ~~~~~~~~~
184
185 -  Version number XXXXX (was 2.0.0.3)
186
187 haskell2010
188 ~~~~~~~~~~~
189
190 -  Version number XXXXX (was 1.1.1.1)
191
192 hoopl
193 ~~~~~
194
195 -  Version number XXXXX (was 3.10.0.0)
196
197 hpc
198 ~~~
199
200 -  Version number XXXXX (was 0.6.0.1)
201
202 integer-gmp
203 ~~~~~~~~~~~
204
205 -  Version number XXXXX (was 0.5.1.0)
206
207 old-locale
208 ~~~~~~~~~~
209
210 -  Version number XXXXX (was 1.0.0.6)
211
212 old-time
213 ~~~~~~~~
214
215 -  Version number XXXXX (was 1.1.0.2)
216
217 process
218 ~~~~~~~
219
220 -  Version number XXXXX (was 1.2.0.0)
221
222 template-haskell
223 ~~~~~~~~~~~~~~~~
224
225 -  Version number XXXXX (was 2.9.0.0)
226
227 -  Added support for unboxed sums :ghc-ticket:`12478`.
228
229 -  Added support for visible type applications :ghc-ticket:`12530`.
230
231 time
232 ~~~~
233
234 -  Version number XXXXX (was 1.4.1)
235
236 unix
237 ~~~~
238
239 -  Version number XXXXX (was 2.7.0.0)
240
241 Win32
242 ~~~~~
243
244 -  Version number XXXXX (was 2.3.0.1)
245
246 Known bugs
247 ----------
248
249 -  TODO FIXME