DynFlags: Support British spelling of GeneralisedNewtypeDeriving
[ghc.git] / docs / users_guide / 8.6.1-notes.rst
1 .. _release-8-6-1:
2
3 Release notes for version 8.6.1
4 ===============================
5
6 The significant changes to the various parts of the compiler are listed in the
7 following sections. There have also been numerous bug fixes and performance
8 improvements over the 8.4.1 release.
9
10
11 Highlights
12 ----------
13
14 The highlights, since the 8.4.1 release, are:
15
16 - Many, many bug fixes.
17
18
19 Full details
20 ------------
21
22 Language
23 ~~~~~~~~
24
25 - Data declarations with empty ``where`` clauses are no longer valid without the
26   extension :extension:`GADTSyntax` enabled. For instance, consider the
27   following, ::
28
29       data T where
30
31   The grammar is invalid in Haskell2010. Previously it could be compiled successfully
32   without ``GADTs``. As of GHC 8.6.1, this is a parse error.
33
34 - Incomplete patterns warning :ghc-flag:`-Wincomplete-patterns` is extended to
35   guards in pattern bindings and ``if`` alternatives of :extension:`MultiWayIf`.
36   For instance, consider the following, ::
37
38       foo :: Bool -> Int
39       foo b = if | b -> 1
40
41   In GHC 8.6.1, it will raise the warning: ::
42
43       <interactive>:2:12: warning: [-Wincomplete-patterns]
44           Pattern match(es) are non-exhaustive
45           In a multi-way if alternative:
46               Guards do not cover entire pattern space
47
48   See :ghc-ticket:`14773`.
49
50 Compiler
51 ~~~~~~~~
52
53 - GHC now no longer adds the current file's directory as a general include path
54   calling the C compiler. Instead we use :ghc-flag:`-iquote` to only add it as
55   an include path for `#include ""`. See :ghc-ticket:`14312`.
56
57 - GHC now supports British spelling of :extension:`GeneralizedNewtypeDeriving`.
58
59 Runtime system
60 ~~~~~~~~~~~~~~
61
62 - The GHC runtime linker now prefers user shared libraries above system ones.
63   When extra search directories are specified these are searched before anything
64   else. This fixes ``iuuc`` on Windows given the proper search directories (e.g
65   ``-L/mingw64/lib``).
66
67         - The GHC runtime linker now uses ``LIBRARY_PATH`` and the runtime loader now also
68           searches ``LD_LIBRARY_PATH``.
69
70 Template Haskell
71 ~~~~~~~~~~~~~~~~
72
73
74 ``ghc`` library
75 ~~~~~~~~~~~~~~~
76
77
78 ``base`` library
79 ~~~~~~~~~~~~~~~~
80
81 - ``($!)`` is now representation-polymorphic like ``($)``.
82
83 - The module ``Data.Functor.Contravariant`` has been moved from the
84   ``contravariant`` package into base. All the other modules in
85   ``contravariant`` (``Data.Functor.Contravariant.Divisible``, etc.)
86   have not been moved to ``base``, and they still reside in ``contravariant``.
87
88
89 Build system
90 ~~~~~~~~~~~~
91
92
93 Included libraries
94 ------------------
95
96 The package database provided with this distribution also contains a number of
97 packages other than GHC itself. See the changelogs provided with these packages
98 for further change information.
99
100 .. ghc-package-list::
101
102     libraries/array/array.cabal:             Dependency of ``ghc`` library
103     libraries/base/base.cabal:               Core library
104     libraries/binary/binary.cabal:           Dependency of ``ghc`` library
105     libraries/bytestring/bytestring.cabal:   Deppendency of ``ghc`` library
106     libraries/Cabal/Cabal/Cabal.cabal:       Dependency of ``ghc-pkg`` utility
107     libraries/containers/containers.cabal:   Dependency of ``ghc`` library
108     libraries/deepseq/deepseq.cabal:         Dependency of ``ghc`` library
109     libraries/directory/directory.cabal:     Dependency of ``ghc`` library
110     libraries/filepath/filepath.cabal:       Dependency of ``ghc`` library
111     compiler/ghc.cabal:                      The compiler itself
112     libraries/ghci/ghci.cabal:               The REPL interface
113     libraries/ghc-boot/ghc-boot.cabal:       Internal compiler library
114     libraries/ghc-compact/ghc-compact.cabal: Core library
115     libraries/ghc-prim/ghc-prim.cabal:       Core library
116     libraries/haskeline/haskeline.cabal:     Dependency of ``ghci`` executable
117     libraries/hpc/hpc.cabal:                 Dependency of ``hpc`` executable
118     libraries/integer-gmp/integer-gmp.cabal: Core library
119     libraries/mtl/mtl.cabal:                 Dependency of ``Cabal`` library
120     libraries/parsec/parsec.cabal:           Dependency of ``Cabal`` library
121     libraries/process/process.cabal:         Dependency of ``ghc`` library
122     libraries/template-haskell/template-haskell.cabal:     Core library
123     libraries/text/text.cabal:               Dependency of ``Cabal`` library
124     libraries/time/time.cabal:               Dependency of ``ghc`` library
125     libraries/transformers/transformers.cabal: Dependency of ``ghc`` library
126     libraries/unix/unix.cabal:               Dependency of ``ghc`` library
127     libraries/Win32/Win32.cabal:             Dependency of ``ghc`` library
128     libraries/xhtml/xhtml.cabal:             Dependency of ``haddock`` executable