GHC: Expose installSignalHandlers, withCleanupSession
[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 Template Haskell
47 ~~~~~~~~~~~~~~~~
48
49 -  TODO FIXME.
50
51 - ``addModFinalizer`` now exposes the local typing environment at the splice
52   point. This allows ``reify`` to see local and top-level definitions in the
53   current declaration group when used as in
54
55   .. code-block:: none
56
57       f x = $(addModFinalizer (reify 'x >>= runIO . print) >> [| x |])
58
59 -  Reifying types that contain unboxed tuples now works correctly. (Previously,
60    Template Haskell reified unboxed tuples as boxed tuples with twice their
61    appropriate arity.)
62
63 -  Splicing singleton unboxed tuple types (e.g., ``(# Int #)``) now works
64    correctly. Previously, Template Haskell would implicitly remove the
65    parentheses when splicing, which would turn ``(# Int #)`` into ``Int``.
66
67 Runtime system
68 ~~~~~~~~~~~~~~
69
70 -  TODO FIXME.
71
72 - The :ref:`heap profiler <prof-heap>` can now emit heap census data to the GHC
73   event log, allowing heap profiles to be correlated with other tracing events
74   (see :ghc-ticket:`11094`).
75
76 Build system
77 ~~~~~~~~~~~~
78
79 -  TODO FIXME.
80
81 Package system
82 ~~~~~~~~~~~~~~
83
84 -  TODO FIXME.
85
86 hsc2hs
87 ~~~~~~
88
89 -  TODO FIXME.
90
91 Libraries
92 ---------
93
94 array
95 ~~~~~
96
97 -  Version number XXXXX (was 0.5.0.0)
98
99
100 .. _lib-base:
101
102 base
103 ~~~~
104
105 See ``changelog.md`` in the ``base`` package for full release notes.
106
107 -  Version number 4.10.0.0 (was 4.9.0.0)
108
109 - ``Data.Either`` now provides ``fromLeft`` and ``fromRight``
110
111 - ``Data.Type.Coercion`` now provides ``gcoerceWith``, which is analogous to
112   ``gcastWith`` from ``Data.Type.Equality``.
113
114 binary
115 ~~~~~~
116
117 -  Version number XXXXX (was 0.7.1.0)
118
119 bytestring
120 ~~~~~~~~~~
121
122 -  Version number XXXXX (was 0.10.4.0)
123
124 Cabal
125 ~~~~~
126
127 -  Version number XXXXX (was 1.18.1.3)
128
129 containers
130 ~~~~~~~~~~
131
132 -  Version number XXXXX (was 0.5.4.0)
133
134 deepseq
135 ~~~~~~~
136
137 -  Version number XXXXX (was 1.3.0.2)
138
139 directory
140 ~~~~~~~~~
141
142 -  Version number XXXXX (was 1.2.0.2)
143
144 filepath
145 ~~~~~~~~
146
147 -  Version number XXXXX (was 1.3.0.2)
148
149 ghc
150 ~~~
151
152 -  The ``GHC.initGhcMonad`` function no longer installs signal handlers by
153    default. This means that the RTS won't attempt to handle Ctrl-C gracefully.
154    If you would like to use GHC's signal handlers, call
155    ``GHC.installSignalHandlers`` during initialization.
156
157 ghc-boot
158 ~~~~~~~~
159
160 -  This is an internal package. Use with caution.
161
162 -  TODO FIXME.
163
164 ghc-prim
165 ~~~~~~~~
166
167 -  Version number XXXXX (was 0.3.1.0)
168
169 -  Added new ``isByteArrayPinned#`` and ``isMutableByteArrayPinned#`` operation.
170
171 -  New function ``noinline`` in ``GHC.Magic`` lets you mark that a function
172    should not be inlined.  It is optimized away after the simplifier runs.
173
174 haskell98
175 ~~~~~~~~~
176
177 -  Version number XXXXX (was 2.0.0.3)
178
179 haskell2010
180 ~~~~~~~~~~~
181
182 -  Version number XXXXX (was 1.1.1.1)
183
184 hoopl
185 ~~~~~
186
187 -  Version number XXXXX (was 3.10.0.0)
188
189 hpc
190 ~~~
191
192 -  Version number XXXXX (was 0.6.0.1)
193
194 integer-gmp
195 ~~~~~~~~~~~
196
197 -  Version number XXXXX (was 0.5.1.0)
198
199 old-locale
200 ~~~~~~~~~~
201
202 -  Version number XXXXX (was 1.0.0.6)
203
204 old-time
205 ~~~~~~~~
206
207 -  Version number XXXXX (was 1.1.0.2)
208
209 process
210 ~~~~~~~
211
212 -  Version number XXXXX (was 1.2.0.0)
213
214 template-haskell
215 ~~~~~~~~~~~~~~~~
216
217 -  Version number XXXXX (was 2.9.0.0)
218
219 -  Added support for unboxed sums :ghc-ticket:`12478`.
220
221 -  Added support for visible type applications :ghc-ticket:`12530`.
222
223 time
224 ~~~~
225
226 -  Version number XXXXX (was 1.4.1)
227
228 unix
229 ~~~~
230
231 -  Version number XXXXX (was 2.7.0.0)
232
233 Win32
234 ~~~~~
235
236 -  Version number XXXXX (was 2.3.0.1)
237
238 Known bugs
239 ----------
240
241 -  TODO FIXME