Support for noinline magic function.
[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 - ``Data.Either`` now provides ``fromLeft`` and ``fromRight``
102
103 - ``Data.Type.Coercion`` now provides ``gcoerceWith``, which is analogous to
104   ``gcastWith`` from ``Data.Type.Equality``.
105
106 binary
107 ~~~~~~
108
109 -  Version number XXXXX (was 0.7.1.0)
110
111 bytestring
112 ~~~~~~~~~~
113
114 -  Version number XXXXX (was 0.10.4.0)
115
116 Cabal
117 ~~~~~
118
119 -  Version number XXXXX (was 1.18.1.3)
120
121 containers
122 ~~~~~~~~~~
123
124 -  Version number XXXXX (was 0.5.4.0)
125
126 deepseq
127 ~~~~~~~
128
129 -  Version number XXXXX (was 1.3.0.2)
130
131 directory
132 ~~~~~~~~~
133
134 -  Version number XXXXX (was 1.2.0.2)
135
136 filepath
137 ~~~~~~~~
138
139 -  Version number XXXXX (was 1.3.0.2)
140
141 ghc
142 ~~~
143
144 -  TODO FIXME.
145
146 ghc-boot
147 ~~~~~~~~
148
149 -  This is an internal package. Use with caution.
150
151 -  TODO FIXME.
152
153 ghc-prim
154 ~~~~~~~~
155
156 -  Version number XXXXX (was 0.3.1.0)
157
158 -  Added new ``isByteArrayPinned#`` and ``isMutableByteArrayPinned#`` operation.
159
160 -  New function ``noinline`` in ``GHC.Magic`` lets you mark that a function
161    should not be inlined.  It is optimized away after the simplifier runs.
162
163 haskell98
164 ~~~~~~~~~
165
166 -  Version number XXXXX (was 2.0.0.3)
167
168 haskell2010
169 ~~~~~~~~~~~
170
171 -  Version number XXXXX (was 1.1.1.1)
172
173 hoopl
174 ~~~~~
175
176 -  Version number XXXXX (was 3.10.0.0)
177
178 hpc
179 ~~~
180
181 -  Version number XXXXX (was 0.6.0.1)
182
183 integer-gmp
184 ~~~~~~~~~~~
185
186 -  Version number XXXXX (was 0.5.1.0)
187
188 old-locale
189 ~~~~~~~~~~
190
191 -  Version number XXXXX (was 1.0.0.6)
192
193 old-time
194 ~~~~~~~~
195
196 -  Version number XXXXX (was 1.1.0.2)
197
198 process
199 ~~~~~~~
200
201 -  Version number XXXXX (was 1.2.0.0)
202
203 template-haskell
204 ~~~~~~~~~~~~~~~~
205
206 -  Version number XXXXX (was 2.9.0.0)
207
208 time
209 ~~~~
210
211 -  Version number XXXXX (was 1.4.1)
212
213 unix
214 ~~~~
215
216 -  Version number XXXXX (was 2.7.0.0)
217
218 Win32
219 ~~~~~
220
221 -  Version number XXXXX (was 2.3.0.1)
222
223 Known bugs
224 ----------
225
226 -  TODO FIXME