404d2397057de4468f0f078d7f02866fe26abaf2
[ghc.git] / docs / users_guide / 7.10.1-notes.xml
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <sect1 id="release-7-10-1">
3 <title>Release notes for version 7.10.1</title>
4
5 <para>
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 7.8 branch.
9 </para>
10
11 <sect2>
12 <title>Highlights</title>
13
14 <para>
15 The highlights, since the 7.8 branch, are:
16 </para>
17
18 <itemizedlist>
19 <listitem>
20 <para>
21 TODO FIXME
22 </para>
23 </listitem>
24 </itemizedlist>
25 </sect2>
26
27 <sect2>
28 <title>Full details</title>
29 <sect3>
30 <title>Language</title>
31 <itemizedlist>
32 <listitem>
33 <para>
34 Added support for <link linkend="binary-literals">binary integer literals</link>
35 </para>
36 </listitem>
37 </itemizedlist>
38 </sect3>
39
40 <sect3>
41 <title>Compiler</title>
42 <itemizedlist>
43 <listitem>
44 <para>
45 GHC now checks that all the language extensions required for
46 the inferred type signatures are explicitly enabled. This
47 means that if any of the type signatures inferred in your
48 program requires some language extension you will need to
49 enable it. The motivation is that adding a missing type
50 signature inferred by GHC should yield a program that
51 typechecks. Previously this was not the case.
52 </para>
53 <para>
54 This is a breaking change. Code that used to compile in the
55 past might fail with an error message requiring some
56 particular language extension (most likely
57 <option>-XTypeFamilies</option>, <option>-XGADTs</option> or
58 <option>-XFlexibleContexts</option>).
59 </para>
60 </listitem>
61 </itemizedlist>
62 </sect3>
63
64 <sect3>
65 <title>GHCi</title>
66 <itemizedlist>
67 <listitem>
68 <para>
69 TODO FIXME
70 </para>
71 </listitem>
72 </itemizedlist>
73 </sect3>
74
75 <sect3>
76 <title>Template Haskell</title>
77 <itemizedlist>
78 <listitem>
79 <para>
80 TODO FIXME
81 </para>
82 </listitem>
83 </itemizedlist>
84 </sect3>
85
86 <sect3>
87 <title>Runtime system</title>
88 <itemizedlist>
89 <listitem>
90 <para>
91 TODO FIXME
92 </para>
93 </listitem>
94 </itemizedlist>
95 </sect3>
96
97 <sect3>
98 <title>Build system</title>
99 <itemizedlist>
100 <listitem>
101 <para>
102 <literal>ghc-pkg</literal> now respects <option>--user</option>
103 and <option>--global</option> when modifying packages (e.g.
104 changing exposed/trust flag or unregistering). Previously,
105 <literal>ghc-pkg</literal> would ignore these flags and modify
106 whichever package it found first on the database stack. To
107 recover the old behavior, simply omit these flags.
108 </para>
109 </listitem>
110 <listitem>
111 <para>
112 <literal>ghc-pkg</literal> accepts a <option>--user-package-db</option>
113 flag which allows a user to override the location of the user package
114 database. Unlike databases specified using <option>--package-db</option>,
115 a user package database configured this way respects
116 the <option>--user</option> flag.
117 </para>
118 </listitem>
119 </itemizedlist>
120 </sect3>
121
122 <sect3>
123 <title>Package system</title>
124 <itemizedlist>
125 <listitem>
126 <para>
127 TODO: cover module renaming, thinning, re-export etc
128 </para>
129 </listitem>
130 <listitem>
131 <para>
132 ghc-pkg (and ghc) have dropped support for single-file style
133 package databases. Since version 6.12, ghc-pkg has defaulted
134 to a new database format (using a directory of files, one per
135 package plus a binary cache).
136 </para>
137 <para>
138 This change will not affect programs and scripts that use
139 <literal>ghc-pkg init</literal> to create package databases.
140 </para>
141 <para>
142 This will affect scripts that create package databases
143 using tricks like
144 <programlisting>
145 echo "[]" > package.conf
146 </programlisting>
147 Such scripts will need to be modified to use
148 <literal>ghc-pkg init</literal>, and to delete databases
149 by directory removal, rather than simple file delete.
150 </para>
151 </listitem>
152 </itemizedlist>
153 </sect3>
154 </sect2>
155
156 <sect2>
157 <title>Libraries</title>
158
159 <sect3>
160 <title>array</title>
161 <itemizedlist>
162 <listitem>
163 <para>
164 Version number XXXXX (was 0.5.0.0)
165 </para>
166 </listitem>
167 </itemizedlist>
168 </sect3>
169
170 <sect3>
171 <title>base</title>
172 <itemizedlist>
173 <listitem>
174 <para>
175 Version number XXXXX (was 4.7.0.0)
176 </para>
177 </listitem>
178 </itemizedlist>
179 </sect3>
180
181 <sect3>
182 <title>bin-package-db</title>
183 <itemizedlist>
184 <listitem>
185 <para>
186 This is an internal package, and should not be used.
187 </para>
188 </listitem>
189 </itemizedlist>
190 </sect3>
191
192 <sect3>
193 <title>binary</title>
194 <itemizedlist>
195 <listitem>
196 <para>
197 Version number XXXXX (was 0.7.1.0)
198 </para>
199 </listitem>
200 </itemizedlist>
201 </sect3>
202
203 <sect3>
204 <title>bytestring</title>
205 <itemizedlist>
206 <listitem>
207 <para>
208 Version number XXXXX (was 0.10.4.0)
209 </para>
210 </listitem>
211 </itemizedlist>
212 </sect3>
213
214 <sect3>
215 <title>Cabal</title>
216 <itemizedlist>
217 <listitem>
218 <para>
219 Version number XXXXX (was 1.18.1.3)
220 </para>
221 </listitem>
222 </itemizedlist>
223 </sect3>
224
225 <sect3>
226 <title>containers</title>
227 <itemizedlist>
228 <listitem>
229 <para>
230 Version number XXXXX (was 0.5.4.0)
231 </para>
232 </listitem>
233 </itemizedlist>
234 </sect3>
235
236 <sect3>
237 <title>deepseq</title>
238 <itemizedlist>
239 <listitem>
240 <para>
241 Version number XXXXX (was 1.3.0.2)
242 </para>
243 </listitem>
244 </itemizedlist>
245 </sect3>
246
247 <sect3>
248 <title>directory</title>
249 <itemizedlist>
250 <listitem>
251 <para>
252 Version number XXXXX (was 1.2.0.2)
253 </para>
254 </listitem>
255 </itemizedlist>
256 </sect3>
257
258 <sect3>
259 <title>filepath</title>
260 <itemizedlist>
261 <listitem>
262 <para>
263 Version number XXXXX (was 1.3.0.2)
264 </para>
265 </listitem>
266 </itemizedlist>
267 </sect3>
268
269 <sect3>
270 <title>ghc</title>
271 <itemizedlist>
272 <listitem>
273 <para>
274 Many internal functions in GHC related to package IDs have been
275 renamed to refer to package keys, e.g. <literal>PackageId</literal>
276 is now <literal>PackageKey</literal>, the wired-in names
277 such as <literal>primPackageId</literal> are now
278 <literal>primPackageKey</literal>, etc. This reflects a distinction
279 that we are now making: a package ID is, as before, the user-visible
280 ID from Cabal <literal>foo-1.0</literal>; a package key is now
281 a compiler-internal entity used for generating linking symbols, and
282 may not correspond at all to the package ID. In
283 particular, there may be multiple package keys per
284 package ID.
285 </para>
286 </listitem>
287 <listitem>
288 <para>
289 The ghc library no longer depends on the Cabal library. This means
290 that users of the ghc library are no longer forced to use the same
291 version of Cabal as ghc did. It also means that Cabal is freed up
292 to be able to depend on packages that ghc does not want to depend
293 on (which for example may enable improvements to Cabal's parsing
294 infrastructure).
295 </para>
296 </listitem>
297 </itemizedlist>
298 </sect3>
299
300 <sect3>
301 <title>ghc-prim</title>
302 <itemizedlist>
303 <listitem>
304 <para>
305 Version number XXXXX (was 0.3.1.0)
306 </para>
307 </listitem>
308 </itemizedlist>
309 </sect3>
310
311 <sect3>
312 <title>haskell98</title>
313 <itemizedlist>
314 <listitem>
315 <para>
316 Version number XXXXX (was 2.0.0.3)
317 </para>
318 </listitem>
319 </itemizedlist>
320 </sect3>
321
322 <sect3>
323 <title>haskell2010</title>
324 <itemizedlist>
325 <listitem>
326 <para>
327 Version number XXXXX (was 1.1.1.1)
328 </para>
329 </listitem>
330 </itemizedlist>
331 </sect3>
332
333 <sect3>
334 <title>hoopl</title>
335 <itemizedlist>
336 <listitem>
337 <para>
338 Version number XXXXX (was 3.10.0.0)
339 </para>
340 </listitem>
341 </itemizedlist>
342 </sect3>
343
344 <sect3>
345 <title>hpc</title>
346 <itemizedlist>
347 <listitem>
348 <para>
349 Version number XXXXX (was 0.6.0.1)
350 </para>
351 </listitem>
352 </itemizedlist>
353 </sect3>
354
355 <sect3>
356 <title>integer-gmp</title>
357 <itemizedlist>
358 <listitem>
359 <para>
360 Version number XXXXX (was 0.5.1.0)
361 </para>
362 </listitem>
363 </itemizedlist>
364 </sect3>
365
366 <sect3>
367 <title>old-locale</title>
368 <itemizedlist>
369 <listitem>
370 <para>
371 Version number XXXXX (was 1.0.0.6)
372 </para>
373 </listitem>
374 </itemizedlist>
375 </sect3>
376
377 <sect3>
378 <title>old-time</title>
379 <itemizedlist>
380 <listitem>
381 <para>
382 Version number XXXXX (was 1.1.0.2)
383 </para>
384 </listitem>
385 </itemizedlist>
386 </sect3>
387
388 <sect3>
389 <title>process</title>
390 <itemizedlist>
391 <listitem>
392 <para>
393 Version number XXXXX (was 1.2.0.0)
394 </para>
395 </listitem>
396 </itemizedlist>
397 </sect3>
398
399 <sect3>
400 <title>template-haskell</title>
401 <itemizedlist>
402 <listitem>
403 <para>
404 Version number XXXXX (was 2.9.0.0)
405 </para>
406 </listitem>
407 </itemizedlist>
408 </sect3>
409
410 <sect3>
411 <title>time</title>
412 <itemizedlist>
413 <listitem>
414 <para>
415 Version number XXXXX (was 1.4.1)
416 </para>
417 </listitem>
418 </itemizedlist>
419 </sect3>
420
421 <sect3>
422 <title>unix</title>
423 <itemizedlist>
424 <listitem>
425 <para>
426 Version number XXXXX (was 2.7.0.0)
427 </para>
428 </listitem>
429 </itemizedlist>
430 </sect3>
431
432 <sect3>
433 <title>Win32</title>
434 <itemizedlist>
435 <listitem>
436 <para>
437 Version number XXXXX (was 2.3.0.1)
438 </para>
439 </listitem>
440 </itemizedlist>
441 </sect3>
442 </sect2>
443
444 <sect2>
445 <title>Known bugs</title>
446 <itemizedlist>
447 <listitem>
448 <para>
449 TODO FIXME
450 </para>
451 </listitem>
452 </itemizedlist>
453 </sect2>
454 </sect1>