summaryrefslogtreecommitdiff
path: root/docs/users_guide/8.12.1-notes.rst
blob: 8f2c26041e11a2c8cc3a8fe40b87182ee591442f (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
.. _release-8-12-1:

Version 8.12.1
==============

The significant changes to the various parts of the compiler are listed in the
following sections.


Highlights
----------

- TODO

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

Language
~~~~~~~~

* In obscure scenarios, GHC now rejects programs it previously accepted, but
  with unhelpful types. For example, if (with ``-XPartialTypeSignatures``) you
  were to write ``x :: forall (f :: forall a (b :: a -> Type). b _). f _``, GHC previously
  would have accepted ``x``, but its type would have involved the mysterious ``Any``
  internal type family. Now, GHC rejects, explaining the situation.

Compiler
~~~~~~~~


GHCi
~~~~


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

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

 - Implement the Overloaded Quotations proposal (#246). The type of all quotation
   forms have now been generalised in terms of a minimal interface necessary for the
   implementation rather than the overapproximation of the ``Q`` monad.

 - Template Haskell quotes now handle fixity declarations in ``let`` and
   ``where`` bindings properly. Previously, such fixity declarations would
   be dropped when quoted due to a Template Haskell bug.

``ghc-prim`` library
~~~~~~~~~~~~~~~~~~~~

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

 - The type of the ``getAnnotations`` function has changed to better reflect
   the fact that it returns two different kinds of annotations, those on
   names and those on modules: ::

      getAnnotations :: Typeable a
                     => ([Word8] -> a) -> ModGuts
                     -> CoreM (ModuleEnv [a], NameEnv [a])

 - The meaning of the ``hs_fixds`` field of ``HsGroup`` has changed slightly.
   It now only contains fixity signatures defined for top-level declarations
   and class methods defined *outside* of the class itself. Previously,
   ``hs_fixds`` would also contain fixity signatures for class methods defined
   *inside* the class, such as the fixity signature for ``m`` in the following
   example: ::

     class C a where
       infixl 4 `m`
       m :: a -> a -> a

   If you wish to attain the previous behavior of ``hs_fixds``, use the new
   ``hsGroupTopLevelFixitySigs`` function, which collects all top-level fixity
   signatures, including those for class methods defined inside classes.

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

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:   Dependency of ``ghc`` library
    libraries/Cabal/Cabal/Cabal.cabal:       Dependency of ``ghc-pkg`` utility
    libraries/containers/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-boot-th/ghc-boot-th.cabal: Internal compiler library
    libraries/ghc-compact/ghc-compact.cabal: Core library
    libraries/ghc-heap/ghc-heap.cabal:       GHC heap-walking 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/libiserv/libiserv.cabal:       Internal compiler library
    libraries/mtl/mtl.cabal:                 Dependency of ``Cabal`` library
    libraries/parsec/parsec.cabal:           Dependency of ``Cabal`` library
    libraries/pretty/pretty.cabal:           Dependency of ``ghc`` library
    libraries/process/process.cabal:         Dependency of ``ghc`` library
    libraries/stm/stm.cabal:                 Dependency of ``haskeline`` library
    libraries/template-haskell/template-haskell.cabal:     Core library
    libraries/terminfo/terminfo.cabal:       Dependency of ``haskeline`` 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