diff options
Diffstat (limited to 'docs/users_guide/7.12.1-notes.xml')
-rw-r--r-- | docs/users_guide/7.12.1-notes.xml | 628 |
1 files changed, 0 insertions, 628 deletions
diff --git a/docs/users_guide/7.12.1-notes.xml b/docs/users_guide/7.12.1-notes.xml deleted file mode 100644 index c71887fa28..0000000000 --- a/docs/users_guide/7.12.1-notes.xml +++ /dev/null @@ -1,628 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<sect1 id="release-7-12-1"> - <title>Release notes for version 7.12.1</title> - - <para> - 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 7.10 branch. - </para> - - <sect2> - <title>Highlights</title> - - <para> - The highlights, since the 7.10 branch, are: - </para> - - <itemizedlist> - <listitem> - <para> - TODO FIXME - </para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Full details</title> - <sect3> - <title>Language</title> - <itemizedlist> - <listitem> - <para> - TODO FIXME. - </para> - </listitem> - - <listitem> - <para> - The parser now supports Haddock comments on GADT data constructors. For example, - <programlisting> - data Expr a where - -- | Just a normal sum - Sum :: Int -> Int -> Expr Int - </programlisting> - </para> - </listitem> - <listitem> - <para> - Implicit parameters of the new ghc-prim type - <literal>GHC.Types.CallStack</literal> are treated - specially, and automatically solved for the current source - location. For example - <programlisting> - f = print (?stk :: CallStack) - </programlisting> - will print the singleton stack containing the occurrence of - <literal>?stk</literal>. If there is another - <literal>CallStack</literal> implicit in-scope, the new location - will be appended to the existing stack, e.g. - <programlisting> - f :: (?stk :: CallStack) => IO () - f = print (?stk :: CallStack) - </programlisting> - will print the occurrence of <literal>?stk</literal> and the - call-site of <literal>f</literal>. The name of the implicit - parameter does not matter. - </para> - <para> - See the release notes for ghc-prim for a description of the - <literal>CallStack</literal> type. - </para> - </listitem> - - <listitem> - <para> - To conform to the common case, the default role assigned to parameters - of datatypes declared in <literal>hs-boot</literal> files is - <literal>representational</literal>. However, if the constructor(s) - for the datatype are given, it makes sense to do normal role inference. - This is now implemented, effectively making the default role for - non-abstract datatypes in <literal>hs-boot</literal> files to be - <literal>phantom</literal>, like it is in regular Haskell code. - </para> - </listitem> - <listitem> - <para> - Wildcards can be used in the type arguments of type/data - family instance declarations to indicate that the name of a - type variable doesn't matter. They will be replaced with new - unique type variables. See <xref - linkend="data-instance-declarations"/> for more details. - </para> - </listitem> - - <listitem> - <para> - GHC now allows to declare type families as injective. - Injectivity information can then be used by the typechecker. - See <xref linkend="injective-ty-fams"/> for details. - </para> - </listitem> - - <listitem> - <para> - Due to a <ulink href="https://ghc.haskell.org/trac/ghc/ticket/10826"> - security issue - </ulink>, Safe Haskell now forbids annotations in programs marked as - <literal>-XSafe</literal> - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Compiler</title> - <itemizedlist> - <listitem> - <para> - Added the option <option>-dth-dec-file</option>. - - This dumps out a .th.hs file of all Template Haskell declarations in a corresponding .hs file. The idea is that application developers can check this into their repository so that they can grep for identifiers used elsewhere that were defined in Template Haskell. - This is similar to using <option>-ddump-to-file</option> with <option>-ddump-splices</option> but it always generates a file instead of being coupled to <option>-ddump-to-file</option> and only outputs code that does not exist in the .hs file and a comment for the splice location in the original file. - </para> - </listitem> - <listitem> - <para> - Added the option <option>-fprint-expanded-types</option>. - - When enabled, GHC also prints type-synonym-expanded types in - type errors. - </para> - </listitem> - <listitem> - <para> - Added the option <option>-fcpr-anal</option>. - - When enabled, the demand analyser performs CPR analysis. - It is implied by <option>-O</option>. Consequently, - <option>-fcpr-off</option> is now removed, run with - <option>-fno-cpr-anal</option> to get the old - <option>-fcpr-off</option> behaviour. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>GHCi</title> - <itemizedlist> - <listitem> - <para> - <literal>Main</literal> with an explicit module header but - without <literal>main</literal> is now an error (#7765). - </para> - <para> - The <literal>:back</literal> and <literal>:forward</literal> - commands now take an optional count allowing the user to move forward or - backward in history several steps at a time. - </para> - <para> - Added commands <literal>:load!</literal> and <literal>:reload!</literal>, - effectively setting "-fdefer-type-errors" before loading a module and - unsetting it after loading if it has not been set before (#8353). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Template Haskell</title> - <itemizedlist> - <listitem> - <para> - The <literal>TemplateHaskell</literal> now no longer automatically - errors when used with a stage 1 compiler (i.e. GHC without - interpreter support); in particular, plain - Haskell quotes (not quasi-quotes) can now be compiled without erroring. - Splices and quasi-quotes continue to only be supported by a - stage 2 compiler. - </para> - </listitem> - <listitem> - <para> - Partial type signatures can now be used in splices, see <xref linkend="pts-where"/>. - </para> - </listitem> - <listitem> - <para> - <literal>Template Haskell</literal> now supports the use of - <literal>UInfixT</literal> in types to resolve infix - operator fixities, in the same vein as - <literal>UInfixP</literal> and <literal>UInfixE</literal> - in patterns and expressions. <literal>ParensT</literal> - and <literal>InfixT</literal> have also been introduced, - serving the same functions as their pattern and expression - counterparts. - </para> - </listitem> - <listitem> - <para> - Primitive chars (e.g., <literal>[| 'a'# |]</literal>) and - primitive strings (e.g., <literal>[| "abc"# |]</literal>) - can now be quoted with Template Haskell. The - <literal>Lit</literal> data type also has a new - constructor, <literal>CharPrimL</literal>, for primitive - char literals. - </para> - </listitem> - <listitem> - <para> - <literal>addTopDecls</literal> now accepts annotation - pragmas. - </para> - </listitem> - <listitem> - <para> - Internally, the implementation of quasi-quotes has been - unified with that of normal Template Haskell splices. Under - the previous implementation, top-level declaration - quasi-quotes did not cause a break in the declaration - groups, unlike splices of the form - <literal>$(...)</literal>. This behavior has been - preserved under the new implementation, and is now - recognized and documented in <xref linkend="th-syntax"/>. - </para> - </listitem> - <listitem> - <para> - The <literal>Lift</literal> class is now derivable via - the <option>-XDeriveLift</option> extension. See - <xref linkend="deriving-lift"/> for more information. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Runtime system</title> - <itemizedlist> - <listitem> - <para> - TODO FIXME. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Build system</title> - <itemizedlist> - <listitem> - <para> - TODO FIXME. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Package system</title> - <itemizedlist> - <listitem> - <para> - TODO FIXME. - </para> - </listitem> - </itemizedlist> - </sect3> - </sect2> - - <sect2> - <title>Libraries</title> - - <sect3> - <title>array</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 0.5.0.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>base</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 4.7.0.0) - </para> - </listitem> - <listitem> - <para> - A new module <literal>GHC.SrcLoc</literal> was added, - exporting a new type <literal>SrcLoc</literal>. A - <literal>SrcLoc</literal> contains package, module, - and file names, as well as start and end positions. - </para> - </listitem> - <listitem> - <para> - A new type <literal>CallStack</literal> was added for use - with the new implicit callstack parameters. A - <literal>CallStack</literal> is a - <literal>[(String, SrcLoc)]</literal>, sorted by most-recent - call. - </para> - </listitem> - <listitem> - <para> - A new function, <literal>interruptible</literal>, was added - to <literal>GHC.IO</literal> allowing an - <literal>IO</literal> action to be run such that it can be - interrupted by an asynchronous exception, even if exceptions - are masked (except if masked with - <literal>interruptibleMask</literal>). - </para> - <para> - This was introduced to fix the behavior of - <literal>allowInterrupt</literal>, which would previously - incorrectly allow exceptions in uninterruptible regions - (see Trac #9516). - </para> - </listitem> - <listitem> - <para> - Per-thread allocation counters - (<literal>setAllocationCounter</literal> and - <literal>getAllocationCounter</literal>) and limits - (<literal>enableAllocationLimit</literal>, - <literal>disableAllocationLimit</literal> are now - available from <literal>System.Mem</literal>. - Previously this functionality was only available - from <literal>GHC.Conc</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>bin-package-db</title> - <itemizedlist> - <listitem> - <para> - This is an internal package, and should not be used. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>binary</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 0.7.1.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>bytestring</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 0.10.4.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Cabal</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.18.1.3) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>containers</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 0.5.4.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>deepseq</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.3.0.2) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>directory</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.2.0.2) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>filepath</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.3.0.2) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>ghc</title> - <itemizedlist> - <listitem> - <para> - TODO FIXME. - </para> - </listitem> - <listitem> - <para> - The <literal>HsBang</literal> type has been removed in - favour of <literal>HsSrcBang</literal> and - <literal>HsImplBang</literal>. Data constructors now - always carry around their strictness annotations as - the user wrote them, whether from an imported module - or not. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>ghc-prim</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 0.3.1.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>haskell98</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 2.0.0.3) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>haskell2010</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.1.1.1) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>hoopl</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 3.10.0.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>hpc</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 0.6.0.1) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>integer-gmp</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 0.5.1.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>old-locale</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.0.0.6) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>old-time</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.1.0.2) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>process</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.2.0.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>template-haskell</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 2.9.0.0) - </para> - </listitem> - <listitem> - <para> - The <literal>Lift</literal> type class for lifting values - into Template Haskell splices now has a default signature - <literal>lift :: Data a => a -> Q Exp</literal>, which means - that you do not have to provide an explicit implementation - of <literal>lift</literal> for types which have a <literal>Data</literal> - instance. To manually use this default implementation, you - can use the <literal>liftData</literal> function which is - now exported from <literal>Language.Haskell.TH.Syntax</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Info</literal>'s constructors no longer have - <literal>Fixity</literal> fields. A <literal>qReifyFixity - </literal> function was added to the <literal>Quasi - </literal> type class (as well as the <literal>reifyFixity - </literal> function, specialized for <literal>Q</literal>) - to allow lookup of fixity information for any given - <literal>Name</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>time</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 1.4.1) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>unix</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 2.7.0.0) - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Win32</title> - <itemizedlist> - <listitem> - <para> - Version number XXXXX (was 2.3.0.1) - </para> - </listitem> - </itemizedlist> - </sect3> - </sect2> - - <sect2> - <title>Known bugs</title> - <itemizedlist> - <listitem> - <para> - TODO FIXME - </para> - </listitem> - </itemizedlist> - </sect2> -</sect1> |