Template Haskell support for TypeApplications
[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 -  TODO FIXME.
153
154 ghc-boot
155 ~~~~~~~~
156
157 -  This is an internal package. Use with caution.
158
159 -  TODO FIXME.
160
161 ghc-prim
162 ~~~~~~~~
163
164 -  Version number XXXXX (was 0.3.1.0)
165
166 -  Added new ``isByteArrayPinned#`` and ``isMutableByteArrayPinned#`` operation.
167
168 -  New function ``noinline`` in ``GHC.Magic`` lets you mark that a function
169    should not be inlined.  It is optimized away after the simplifier runs.
170
171 haskell98
172 ~~~~~~~~~
173
174 -  Version number XXXXX (was 2.0.0.3)
175
176 haskell2010
177 ~~~~~~~~~~~
178
179 -  Version number XXXXX (was 1.1.1.1)
180
181 hoopl
182 ~~~~~
183
184 -  Version number XXXXX (was 3.10.0.0)
185
186 hpc
187 ~~~
188
189 -  Version number XXXXX (was 0.6.0.1)
190
191 integer-gmp
192 ~~~~~~~~~~~
193
194 -  Version number XXXXX (was 0.5.1.0)
195
196 old-locale
197 ~~~~~~~~~~
198
199 -  Version number XXXXX (was 1.0.0.6)
200
201 old-time
202 ~~~~~~~~
203
204 -  Version number XXXXX (was 1.1.0.2)
205
206 process
207 ~~~~~~~
208
209 -  Version number XXXXX (was 1.2.0.0)
210
211 template-haskell
212 ~~~~~~~~~~~~~~~~
213
214 -  Version number XXXXX (was 2.9.0.0)
215
216 -  Added support for unboxed sums :ghc-ticket:`12478`.
217
218 -  Added support for visible type applications :ghc-ticket:`12530`.
219
220 time
221 ~~~~
222
223 -  Version number XXXXX (was 1.4.1)
224
225 unix
226 ~~~~
227
228 -  Version number XXXXX (was 2.7.0.0)
229
230 Win32
231 ~~~~~
232
233 -  Version number XXXXX (was 2.3.0.1)
234
235 Known bugs
236 ----------
237
238 -  TODO FIXME