summaryrefslogtreecommitdiff
path: root/docs/users_guide/8.6.1-notes.rst
blob: 70c3b0c10dd3c93c33828f2aa861a42aaf8490b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
.. _release-8-6-1:

Release notes for version 8.6.1
===============================

The significant changes to the various parts of the compiler are listed in the
following sections. There have also been numerous bug fixes and performance
improvements over the 8.4.1 release.


Highlights
----------

The highlights, since the 8.4.1 release, are:

- Many, many bug fixes.


Full details
------------

Language
~~~~~~~~

- Data declarations with empty ``where`` clauses are no longer valid without the
  extension :extension:`GADTSyntax` enabled. For instance, consider the
  following, ::

      data T where

  The grammar is invalid in Haskell2010. Previously it could be compiled successfully
  without ``GADTs``. As of GHC 8.6.1, this is a parse error.

Compiler
~~~~~~~~

- GHC now no longer adds the current file's directory as a general include path
  calling the C compiler. Instead we use :ghc-flag:`-iquote` to only add it as
  an include path for `#include ""`. See :ghc-ticket:`14312`.

Runtime system
~~~~~~~~~~~~~~

- The GHC runtime linker now prefers user shared libraries above system ones.
  When extra search directories are specified these are searched before anything
  else. This fixes ``iuuc`` on Windows given the proper search directories (e.g
  ``-L/mingw64/lib``).

	- The GHC runtime linker now uses ``LIBRARY_PATH`` and the runtime loader now also
	  searches ``LD_LIBRARY_PATH``.

Template Haskell
~~~~~~~~~~~~~~~~


``ghc`` library
~~~~~~~~~~~~~~~


``base`` library
~~~~~~~~~~~~~~~~

- ``($!)`` is now representation-polymorphic like ``($)``.

- The module ``Data.Functor.Contravariant`` has been moved from the
  ``contravariant`` package into base. All the other modules in
  ``contravariant`` (``Data.Functor.Contravariant.Divisible``, etc.)
  have not been moved to ``base``, and they still reside in ``contravariant``.


Build system
~~~~~~~~~~~~


Included libraries
------------------

The package database provided with this distribution also contains a number of
packages other than GHC itself. See the changelogs provided with these packages
for further change information.

.. ghc-package-list::

    libraries/array/array.cabal:             Dependency of ``ghc`` library
    libraries/base/base.cabal:               Core library
    libraries/binary/binary.cabal:           Dependency of ``ghc`` library
    libraries/bytestring/bytestring.cabal:   Deppendency of ``ghc`` library
    libraries/Cabal/Cabal/Cabal.cabal:       Dependency of ``ghc-pkg`` utility
    libraries/containers/containers.cabal:   Dependency of ``ghc`` library
    libraries/deepseq/deepseq.cabal:         Dependency of ``ghc`` library
    libraries/directory/directory.cabal:     Dependency of ``ghc`` library
    libraries/filepath/filepath.cabal:       Dependency of ``ghc`` library
    compiler/ghc.cabal:                      The compiler itself
    libraries/ghci/ghci.cabal:               The REPL interface
    libraries/ghc-boot/ghc-boot.cabal:       Internal compiler library
    libraries/ghc-compact/ghc-compact.cabal: Core library
    libraries/ghc-prim/ghc-prim.cabal:       Core library
    libraries/haskeline/haskeline.cabal:     Dependency of ``ghci`` executable
    libraries/hpc/hpc.cabal:                 Dependency of ``hpc`` executable
    libraries/integer-gmp/integer-gmp.cabal: Core library
    libraries/mtl/mtl.cabal:                 Dependency of ``Cabal`` library
    libraries/parsec/parsec.cabal:           Dependency of ``Cabal`` library
    libraries/process/process.cabal:         Dependency of ``ghc`` library
    libraries/template-haskell/template-haskell.cabal:     Core library
    libraries/text/text.cabal:               Dependency of ``Cabal`` library
    libraries/time/time.cabal:               Dependency of ``ghc`` library
    libraries/transformers/transformers.cabal: Dependency of ``ghc`` library
    libraries/unix/unix.cabal:               Dependency of ``ghc`` library
    libraries/Win32/Win32.cabal:             Dependency of ``ghc`` library
    libraries/xhtml/xhtml.cabal:             Dependency of ``haddock`` executable