Support SCC pragmas in declaration context
[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 Runtime system
60 ~~~~~~~~~~~~~~
61
62 -  TODO FIXME.
63
64 - The :ref:`heap profiler <prof-heap>` can now emit heap census data to the GHC
65   event log, allowing heap profiles to be correlated with other tracing events
66   (see :ghc-ticket:`11094`).
67
68 Build system
69 ~~~~~~~~~~~~
70
71 -  TODO FIXME.
72
73 Package system
74 ~~~~~~~~~~~~~~
75
76 -  TODO FIXME.
77
78 hsc2hs
79 ~~~~~~
80
81 -  TODO FIXME.
82
83 Libraries
84 ---------
85
86 array
87 ~~~~~
88
89 -  Version number XXXXX (was 0.5.0.0)
90
91
92 .. _lib-base:
93
94 base
95 ~~~~
96
97 See ``changelog.md`` in the ``base`` package for full release notes.
98
99 -  Version number 4.10.0.0 (was 4.9.0.0)
100
101 binary
102 ~~~~~~
103
104 -  Version number XXXXX (was 0.7.1.0)
105
106 bytestring
107 ~~~~~~~~~~
108
109 -  Version number XXXXX (was 0.10.4.0)
110
111 Cabal
112 ~~~~~
113
114 -  Version number XXXXX (was 1.18.1.3)
115
116 containers
117 ~~~~~~~~~~
118
119 -  Version number XXXXX (was 0.5.4.0)
120
121 deepseq
122 ~~~~~~~
123
124 -  Version number XXXXX (was 1.3.0.2)
125
126 directory
127 ~~~~~~~~~
128
129 -  Version number XXXXX (was 1.2.0.2)
130
131 filepath
132 ~~~~~~~~
133
134 -  Version number XXXXX (was 1.3.0.2)
135
136 ghc
137 ~~~
138
139 -  TODO FIXME.
140
141 ghc-boot
142 ~~~~~~~~
143
144 -  This is an internal package. Use with caution.
145
146 -  TODO FIXME.
147
148 ghc-prim
149 ~~~~~~~~
150
151 -  Version number XXXXX (was 0.3.1.0)
152
153 -  Added new ``isByteArrayPinned#`` and ``isMutableByteArrayPinned#`` operation.
154
155 haskell98
156 ~~~~~~~~~
157
158 -  Version number XXXXX (was 2.0.0.3)
159
160 haskell2010
161 ~~~~~~~~~~~
162
163 -  Version number XXXXX (was 1.1.1.1)
164
165 hoopl
166 ~~~~~
167
168 -  Version number XXXXX (was 3.10.0.0)
169
170 hpc
171 ~~~
172
173 -  Version number XXXXX (was 0.6.0.1)
174
175 integer-gmp
176 ~~~~~~~~~~~
177
178 -  Version number XXXXX (was 0.5.1.0)
179
180 old-locale
181 ~~~~~~~~~~
182
183 -  Version number XXXXX (was 1.0.0.6)
184
185 old-time
186 ~~~~~~~~
187
188 -  Version number XXXXX (was 1.1.0.2)
189
190 process
191 ~~~~~~~
192
193 -  Version number XXXXX (was 1.2.0.0)
194
195 template-haskell
196 ~~~~~~~~~~~~~~~~
197
198 -  Version number XXXXX (was 2.9.0.0)
199
200 time
201 ~~~~
202
203 -  Version number XXXXX (was 1.4.1)
204
205 unix
206 ~~~~
207
208 -  Version number XXXXX (was 2.7.0.0)
209
210 Win32
211 ~~~~~
212
213 -  Version number XXXXX (was 2.3.0.1)
214
215 Known bugs
216 ----------
217
218 -  TODO FIXME