diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-11-15 11:56:10 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-11-15 11:56:10 -0500 |
commit | c2991f16cb6f5b4e7cff46a394dda4247d973f44 (patch) | |
tree | 2a820dd7e9518126acea597e51ffa4afac8116b8 /docs | |
parent | f3ffec2729abb4bccaf16e974bef376c8968516e (diff) | |
download | haskell-c2991f16cb6f5b4e7cff46a394dda4247d973f44.tar.gz |
users-guide: Drop 8.6.1 release notes
Diffstat (limited to 'docs')
-rw-r--r-- | docs/users_guide/8.6.1-notes.rst | 292 | ||||
-rw-r--r-- | docs/users_guide/index.rst | 1 |
2 files changed, 0 insertions, 293 deletions
diff --git a/docs/users_guide/8.6.1-notes.rst b/docs/users_guide/8.6.1-notes.rst deleted file mode 100644 index 45c2b10b06..0000000000 --- a/docs/users_guide/8.6.1-notes.rst +++ /dev/null @@ -1,292 +0,0 @@ -.. _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: - -- Programs are no longer constrained by the Windows ``MAX_PATH`` file path - length limit. The file path limit is now approximately 32,767 characters. Note - that GHC itself is still somewhat limited due to GCC not supporting file - namespaced paths. Paths that are passed directly to the compiler, linker or - other GNU tools are currently still constrained. See :ref:`windows-file-paths` - for details. - -- Many, many bug fixes. - - -Full details ------------- - -Language -~~~~~~~~ - -- Use of quantified type variables in constraints is now allowed via the - :extension:`QuantifiedConstraints` language extension. This long-awaited feature - enables users to encode significantly more precision in their types. For instance, - the common ``MonadTrans`` typeclass could now make the expectation that an - applied transformer is must be a ``Monad`` :: - - class (forall m. Monad m => Monad (t m)) => MonadTrans t where {- ... -} - - Additionally, quantification can enable terminating instance resolution - where this previously was not possible. See :ref:`quantified-constraints` for - details. - -- A new :extension:`DerivingVia` language extension has been added which allows - the use of the ``via`` deriving strategy. For instance: :: - - newtype T = MkT Int - deriving Monoid via (Sum Int) - - See :ref:`deriving-via` for more information. - -- A new :extension:`StarIsType` language extension has been added which controls - whether ``*`` is parsed as ``Data.Kind.Type`` or a regular type operator. - :extension:`StarIsType` is enabled by default. - -- GHC now permits the use of a wildcard type as the context of a standalone - ``deriving`` declaration with the use of the - :extension:`PartialTypeSignatures` language extension. For instance, this - declaration: :: - - deriving instance _ => Eq (Foo a) - - Denotes a derived ``Eq (Foo a)`` instance, where the context is inferred in - much the same way as ordinary ``deriving`` clauses do. - See :ref:`partial-type-signatures`. - -- 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. - -- Incomplete patterns warning :ghc-flag:`-Wincomplete-patterns` is extended to - guards in pattern bindings and ``if`` alternatives of :extension:`MultiWayIf`. - For instance, consider the following, :: - - foo :: Bool -> Int - foo b = if | b -> 1 - - In GHC 8.6.1, it will raise the warning: :: - - <interactive>:2:12: warning: [-Wincomplete-patterns] - Pattern match(es) are non-exhaustive - In a multi-way if alternative: - Guards do not cover entire pattern space - - See :ghc-ticket:`14773`. - -- Scoped type variables now work in default methods of class declarations - and in pattern synonyms in Template Haskell. See :ghc-ticket:`14885`. - -- ``do`` expressions, lambda expressions, etc. to be directly used as - a function argument, enabled with :extension:`BlockArguments`. - See :ref:`More liberal syntax for function arguments <block-arguments>` - for the full details. - -- Underscores in numeric literals (e.g. ``1_000_000``), enabled with - :extension:`NumericUnderscores`. - See :ref:`Numeric underscores <numeric-underscores>` - for the full details. - -- CUSKs now require all kind variables to be explicitly quantified. This was - already the case with :extension:`TypeInType`, but now :extension:`PolyKinds` - also exhibits this behavior. This means that the following example is no - longer considered to have a CUSK:: - - data T1 :: k -> Type -- No CUSK: `k` is not explicitly quantified - -- Functionality of :extension:`TypeInType` has been subsumed by - :extension:`PolyKinds`, and it is now merely a shorthand for - :extension:`PolyKinds`, :extension:`DataKinds`, and :extension:`NoStarIsType`. - The users are advised to avoid :extension:`TypeInType` due to its misleading - name: the ``Type :: Type`` axiom holds regardless of whether it is enabled. - -- GHC has become more diligent about catching illegal uses of kind polymorphism. - For instance, GHC 8.4 would accept the following without the use of - :extension:`PolyKinds`:: - - f :: forall k (a :: k). Proxy a - f = Proxy - - This is now an error unless :extension:`PolyKinds` is enabled. - -- The plugin mechanism has been extended to allow plugins to run between frontend - phases. Of particular note are the parser and typechecker plugins which run - after parsing and typechecking have completed. Collectively, these new extension - points are called :ref:`source plugins <source-plugins>`. - -- Type literals now could be used in type class instances without the extension - :extension:`FlexibleInstances`. - - See :ghc-ticket:`13833`. - -- :extension:`MonadFailDesugaring` is now enabled by default. See - `MonadFail Proposal (MFP) - <https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail>`__ - for more details. - -Compiler -~~~~~~~~ - -- GHC now no longer adds the current file's directory as a general include path - calling the C compiler. Instead we use ``-iquote`` to only add it as - an include path for `#include ""`. See :ghc-ticket:`14312`. - -- GHC now supports British spelling of :extension:`GeneralizedNewtypeDeriving`. - -- GHC now does significantly more constant folding in its core-to-core optimiser. - This will result in significantly better code being generated for some - programs. See :ghc-ticket:`9136`. - -- GHC now offers significantly more information about typed holes such as valid - hole fits and refinement hole fits. See :ref:`Valid Hole Fits <typed-hole-valid-hole-fits>` - for more information. - -- The code-generation effects of :ghc-flag:`-dynamic` can now be - enabled independently by the flag - :ghc-flag:`-fexternal-dynamic-refs`. If you don't know why you might - need this, you don't need it. - -- :ghc-flag:`-Wcompat` now includes :ghc-flag:`-Wimplicit-kind-vars` to - provide early detection of breakage that will be caused by implementation of - `GHC proposal #24 - <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0024-no-kind-vars.rst>`__ - in a future release. - -Plugins -~~~~~~~ - -- GHC's plugin mechanism now offers plugin authors control over their plugin's - effect on recompilation checking. Specifically the ``Plugin`` record name has - a new field :: - - data Plugin = Plugin { - pluginRecompile :: [CommandLineOption] -> IO PluginRecompile - , {- ... -} - } - - data PluginRecompile = ForceRecompile | NoForceRecompile | MaybeRecompile Fingerprint - - Plugin based on ``defaultPlugin`` will have their previous recompilation - behavior (``ForceRecompile``) preserved. However, plugins that are "pure" are - encouraged to override this to either ``NoForceRecompile`` or ``MaybeRecompile``. - See :ref:`plugin_recompilation` for details. - -- GHC now provides a class of new plugins: source plugins. These plugins can - inspect and modify a variety of intermediate representations used by the - compiler's frontend. These include: - - * The ability to modify the parser output - * The ability to inspect the renamer output - * The ability to modify the typechecked AST - * The ability to modify Template Haskell splices - * The ability to modify interface files as they are loaded - - See :ref:`source-plugins` for details. - -GHCi -~~~~ - -- Added an experimental :ghci-cmd:`:doc` command that displays the - documentation for a declaration. - -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``. - -- The GHC runtime on Windows is no longer constrained by the ``MAX_PATH`` file path - length limitation. See :ref:`windows-file-paths`. - -- The runtime now allows use of the :rts-flag:`-hT` profiling variety on - programs built with :ghc-flag:`-prof`. - -- The STM assertions mechanism (namely the ``always`` and ``alwaysSucceeds`` - functions) has been removed. This happened a bit earlier than proposed in the - deprecation pragma included in GHC 8.4, but due to community feedback we - decided to move ahead with the early removal. - -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``. - -``ghc-prim`` library -~~~~~~~~~~~~~~~~~~~~ - -- Version number 0.5.2.1 (was 0.5.2.0) - -- Added new ``addWordC#`` operation for unsigned addition with carry. - -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-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 diff --git a/docs/users_guide/index.rst b/docs/users_guide/index.rst index c886722859..e629af67a5 100644 --- a/docs/users_guide/index.rst +++ b/docs/users_guide/index.rst @@ -12,7 +12,6 @@ Contents: license intro - 8.6.1-notes 8.8.1-notes 8.10.1-notes ghci |