Add NUMA support for Windows
[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 - It is now possible to explicitly pick a strategy to use when deriving a
42   class instance using the :ghc-flag:`-XDerivingStrategies` language extension
43   (see :ref:`deriving-strategies`).
44
45 GHCi
46 ~~~~
47
48 -  TODO FIXME.
49
50 - Added :ghc-flag:`-flocal-ghci-history` which uses current directory for `.ghci-history`.
51
52 Template Haskell
53 ~~~~~~~~~~~~~~~~
54
55 -  TODO FIXME.
56
57 -  Reifying types that contain unboxed tuples now works correctly. (Previously,
58    Template Haskell reified unboxed tuples as boxed tuples with twice their
59    appropriate arity.)
60
61 -  Splicing singleton unboxed tuple types (e.g., ``(# Int #)``) now works
62    correctly. Previously, Template Haskell would implicitly remove the
63    parentheses when splicing, which would turn ``(# Int #)`` into ``Int``.
64
65 Runtime system
66 ~~~~~~~~~~~~~~
67
68 -  TODO FIXME.
69
70 - The :ref:`heap profiler <prof-heap>` can now emit heap census data to the GHC
71   event log, allowing heap profiles to be correlated with other tracing events
72   (see :ghc-ticket:`11094`).
73
74 - Added NUMA support to Windows.
75
76 - Added processor group support for Windows. This allows the runtime to allocate
77   threads to all cores in systems which have multiple processor groups.
78   (e.g. > 64 cores, see :ghc-ticket:`11054`)
79
80 Build system
81 ~~~~~~~~~~~~
82
83 -  TODO FIXME.
84
85 Package system
86 ~~~~~~~~~~~~~~
87
88 -  TODO FIXME.
89
90 hsc2hs
91 ~~~~~~
92
93 -  TODO FIXME.
94
95 Libraries
96 ---------
97
98 array
99 ~~~~~
100
101 -  Version number XXXXX (was 0.5.0.0)
102
103
104 .. _lib-base:
105
106 base
107 ~~~~
108
109 See ``changelog.md`` in the ``base`` package for full release notes.
110
111 -  Version number 4.10.0.0 (was 4.9.0.0)
112
113 - ``Data.Either`` now provides ``fromLeft`` and ``fromRight``
114
115 - ``Data.Type.Coercion`` now provides ``gcoerceWith``, which is analogous to
116   ``gcastWith`` from ``Data.Type.Equality``.
117
118 - The ``Read1`` and ``Read2`` classes in ``Data.Functor.Classes`` have new
119   methods, ``liftReadList(2)`` and ``liftReadListPrec(2)``, that are defined in
120   terms of ``ReadPrec`` instead of ``ReadS``. This matches the interface
121   provided in GHC's version of the ``Read`` class, and allows users to write
122   more efficient ``Read1`` and ``Read2`` instances.
123
124 binary
125 ~~~~~~
126
127 -  Version number XXXXX (was 0.7.1.0)
128
129 bytestring
130 ~~~~~~~~~~
131
132 -  Version number XXXXX (was 0.10.4.0)
133
134 Cabal
135 ~~~~~
136
137 -  Version number XXXXX (was 1.18.1.3)
138
139 containers
140 ~~~~~~~~~~
141
142 -  Version number XXXXX (was 0.5.4.0)
143
144 deepseq
145 ~~~~~~~
146
147 -  Version number XXXXX (was 1.3.0.2)
148
149 directory
150 ~~~~~~~~~
151
152 -  Version number XXXXX (was 1.2.0.2)
153
154 filepath
155 ~~~~~~~~
156
157 -  Version number XXXXX (was 1.3.0.2)
158
159 ghc
160 ~~~
161
162 -  
163 ghc-boot
164 ~~~~~~~~
165
166 -  This is an internal package. Use with caution.
167
168 -  TODO FIXME.
169
170 ghc-prim
171 ~~~~~~~~
172
173 -  Version number XXXXX (was 0.3.1.0)
174
175 -  Added new ``isByteArrayPinned#`` and ``isMutableByteArrayPinned#`` operation.
176
177 -  New function ``noinline`` in ``GHC.Magic`` lets you mark that a function
178    should not be inlined.  It is optimized away after the simplifier runs.
179
180 haskell98
181 ~~~~~~~~~
182
183 -  Version number XXXXX (was 2.0.0.3)
184
185 haskell2010
186 ~~~~~~~~~~~
187
188 -  Version number XXXXX (was 1.1.1.1)
189
190 hoopl
191 ~~~~~
192
193 -  Version number XXXXX (was 3.10.0.0)
194
195 hpc
196 ~~~
197
198 -  Version number XXXXX (was 0.6.0.1)
199
200 integer-gmp
201 ~~~~~~~~~~~
202
203 -  Version number XXXXX (was 0.5.1.0)
204
205 old-locale
206 ~~~~~~~~~~
207
208 -  Version number XXXXX (was 1.0.0.6)
209
210 old-time
211 ~~~~~~~~
212
213 -  Version number XXXXX (was 1.1.0.2)
214
215 process
216 ~~~~~~~
217
218 -  Version number XXXXX (was 1.2.0.0)
219
220 template-haskell
221 ~~~~~~~~~~~~~~~~
222
223 -  Version number XXXXX (was 2.9.0.0)
224
225 -  Added support for unboxed sums :ghc-ticket:`12478`.
226
227 -  Added support for visible type applications :ghc-ticket:`12530`.
228
229 time
230 ~~~~
231
232 -  Version number XXXXX (was 1.4.1)
233
234 unix
235 ~~~~
236
237 -  Version number XXXXX (was 2.7.0.0)
238
239 Win32
240 ~~~~~
241
242 -  Version number XXXXX (was 2.3.0.1)
243
244 Known bugs
245 ----------
246
247 -  TODO FIXME