summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2009-09-20 14:18:20 +0000
committerIan Lynagh <igloo@earth.li>2009-09-20 14:18:20 +0000
commit129e41ed3570684da268287b05c62ea1dbb240d8 (patch)
tree17a145e0ca1b8699261f681260ca9eb8a8a4f235 /docs
parent63a1a074071247b41710a3f51a2097b563022ecb (diff)
downloadhaskell-129e41ed3570684da268287b05c62ea1dbb240d8.tar.gz
Add release notes for 6.12.1
Diffstat (limited to 'docs')
-rw-r--r--docs/users_guide/6.12.1-notes.xml1237
-rw-r--r--docs/users_guide/ug-ent.xml2
2 files changed, 1238 insertions, 1 deletions
diff --git a/docs/users_guide/6.12.1-notes.xml b/docs/users_guide/6.12.1-notes.xml
new file mode 100644
index 0000000000..691863de7b
--- /dev/null
+++ b/docs/users_guide/6.12.1-notes.xml
@@ -0,0 +1,1237 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<sect1 id="release-6-12-1">
+ <title>Release notes for version 6.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 6.10 branch.
+ </para>
+
+ <sect2>
+ <title>Language changes</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The new <literal>TupleSections</literal> language extension
+ enables tuple sections, such as <literal>(, True)</literal>.
+ See <xref linkend="tuple-sections" /> for more information.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new <literal>MonoLocalBinds</literal> language extension
+ disables type variable generalisation for bindings in
+ <literal>let</literal> and <literal>where</literal> clauses.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new <literal>DeriveFunctor</literal>,
+ <literal>DeriveFoldable</literal> and
+ <literal>DeriveTraversable</literal> language extensions
+ enable deriving for the respective type classes.
+ See <xref linkend="deriving-typeable" /> for more information.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new <literal>NoNPlusKPatterns</literal> language extension
+ disables <literal>n+k</literal> patterns.
+ See <xref linkend="n-k-patterns" /> for more information.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Some improvements have been made to record puns:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>C { A.a }</literal> now works, expanding to
+ <literal>C { A.a = a }</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>-fwarn-unused-matches</literal> no longer
+ warns about bindings introduced by
+ <literal>f (C {..}) = x</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>RecordWildCards</literal> language
+ extension implies
+ <literal>DisambiguateRecordFields</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>
+ Declarations such as
+ </para>
+<programlisting>
+data T a where
+ MkT :: forall a. Eq a => { x,y :: !a } -> T a
+</programlisting>
+ <para>
+ are now only accepted if the extension
+ <literal>TypeOperators</literal> is on.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ It is now possible to define GADT records with class
+ constraints. The syntax is:
+ </para>
+<programlisting>
+data T a where
+ MkT :: forall a. Eq a => { x,y :: !a } -> T a
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ You can now list multiple GADT constructors with the same type,
+ e.g.:
+ </para>
+<programlisting>
+data T where
+ A, B :: T
+ C :: Int -> T
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ It is now possible to use GADT syntax for data families:
+ </para>
+<programlisting>
+data instance T [a] where
+ T1 :: a -> T [a]
+</programlisting>
+ <para>
+ and make data instances be GADTs:
+ </para>
+<programlisting>
+data instance T [a] where
+ T1 :: Int -> T [Int]
+ T2 :: a -> b -> T [(a,b)]
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Record updates can now be used with datatypes containing
+ existential type variables, provided the fields being altered
+ do not mention the existential types.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>ImpredicativeTypes</literal> extension now imples
+ the <literal>RankNTypes</literal> extension.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>ImpredicativeTypes</literal> extension is no
+ longer enabled by <literal>-fglasgow-exts</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ You can now give multi-line <literal>DEPRECATED</literal> and
+ <literal>WARNING</literal> pragmas:
+ </para>
+<programlisting>
+{-# DEPRECATED defaultUserHooks
+ ["Use simpleUserHooks or autoconfUserHooks, unless you need Cabal-1.2"
+ , "compatibility in which case you must stick with defaultUserHooks"]
+ #-}
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>-#include</literal> flag and
+ <literal>INCLUDE</literal> pragma are now deprecated and
+ ignored. GHC now generates its own C prototypes, rather than
+ relying on C prototypes.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>threadsafe</literal> foreign import safety level
+ is now deprecated; use <literal>safe</literal> instead.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new FFI calling convention called
+ <literal>prim</literal>, which allows calling C-- function.
+ Most users are not expected to need this.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Warnings</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ A warning is now emitted if an unlifted type is bound in a
+ lazy pattern (in <literal>let</literal> or
+ <literal>where</literal> clause, or in an irrefutable pattern)
+ unless it is inside a bang pattern.
+ This warning is controlled by the
+ <literal>-fwarn-lazy-unlifted-bindings</literal> flag.
+ In a future version of GHC this will be an error.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There are two new warnings if a monadic result of type other than
+ <literal>m ()</literal> is used in a <literal>do</literal>
+ block, but its result is not bound.
+ The flags <literal>-fwarn-unused-do-bind</literal>
+ and <literal>-fwarn-wrong-do-bind</literal> control
+ these warnings.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new warning if a monadic result of type other than
+ <literal>m ()</literal> is not bound.
+ The flag <literal>-fwarn-unused-do-bind</literal> controls
+ this warning.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>-fwarn-dodgy-exports</literal> controls
+ whether an error is given for exporting a type synonym as
+ <literal>T(..)</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Name shadowing warnings are no longer given for variable names
+ beginning with an underscore.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When <literal>-Werror</literal> is given, we now pass
+ <literal>-Werror</literal> to <literal>cpp</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Runtime system</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The flag <literal>+RTS -N</literal> now automatically
+ determines how many threads to use, based on the number
+ of CPUs in your machine.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>+RTS -q1</literal> disables the parallel
+ garbage collector.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag
+ <literal>+RTS -qg<replaceable>n</replaceable></literal>
+ sets the minimum generation for which parallel garbage
+ collection is used. Defaults to 1.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>+RTS -qa</literal>
+ uses the OS to set thread affinity.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>+RTS -qb</literal>
+ disables load balancing in the parallel garbage collector.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you link with the <literal>-eventlog</literal> flag, then
+ the new flag <literal>+RTS -l</literal> generates
+ <literal><replaceable>prog</replaceable>.eventlog</literal>
+ files, which tools such as ThreadScope can use to show the
+ behaviour of your program. The
+ <literal>+RTS -D><replaceable>x</replaceable></literal> output
+ is also sent to the eventlog file if this option is enabled.
+ The <literal>+RTS -v</literal> flag sends eventlog data to
+ stderr instead.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new statistic in the <literal>+RTS -s</literal> output:
+ </para>
+<programlisting>
+SPARKS: 1430 (2 converted, 1427 pruned)
+</programlisting>
+ <para>
+ This tells you how many sparks (requests for parallel
+ execution, caused by calls to <literal>par</literal>) were
+ created, how many were actually evaluated in parallel
+ (converted), and how many were found to be already evaluated
+ and were thus discarded (pruned). Any unaccounted for sparks
+ are simply discarded at the end of evaluation.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Build system</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ We now require GHC >= 6.8 to build.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We now require that gcc is >= 3.0.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In order to generate the parsers, happy >= 1.16 is now
+ required. The parsers are pre-generated in the source tarball,
+ so most users will not need happy.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ It is now possible to build GHC with a simple, BSD-licensed
+ Haskell implementation of Integer, instead of the
+ implementation on top of GMP. To do so, set
+ <literal>INTEGER_LIBRARY</literal> to
+ <literal>integer-simple</literal> in
+ <literal>mk/build.mk</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The build system has been rewritten for the 6.12 series.
+ See <ulink url="http://hackage.haskell.org/trac/ghc/wiki/Building/Using">the building guide</ulink>
+ for more information.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The build system now uses variables like
+ <literal>bindir</literal> compatibly with the GNU standard.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Compiler</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The "Interface file version" field of the
+ <literal>ghc --info</literal> output has been removed, as it
+ is no longer used by GHC.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new "LibDir" field in the
+ <literal>ghc --info</literal> output.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A field <replaceable>f</replaceable> in the
+ <literal>ghc --info</literal> can now be printed with
+ <literal>ghc --print-<replaceable>f</replaceable></literal>, with letters lower-cased
+ and spaces replaced by dashes.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ GHC now works (as a 32bit application) on OS X Snow Leopard.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The native code generator now works on Sparc Solaris.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Haddock interface files are now portable between different
+ architectures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new linker flag <literal>-eventlog</literal> enables the
+ <literal>+RTS -l</literal> event logging features. The
+ <literal>-debug</literal> flag also enables them.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new flag <literal>-feager-blackholing</literal>
+ which typically gives better performing code when running
+ with multiple threads.
+ See <xref linkend="parallel-compile-options" /> for more
+ information.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new flag <literal>-fbuilding-cabal-package</literal>
+ which signals to GHC that it is being run by a build system,
+ rather than invoked directly. This currently means that GHC
+ gives different error messages in certain situations.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The following flags were static, but are now dynamic:
+ <literal>-fext-core</literal>,
+ <literal>-fauto-sccs-on-all-toplevs</literal>,
+ <literal>-auto-all</literal>,
+ <literal>-no-auto-all</literal>,
+ <literal>-fauto-sccs-on-exported-toplevs</literal>,
+ <literal>-auto</literal>,
+ <literal>-no-auto</literal>,
+ <literal>-fauto-sccs-on-individual-cafs</literal>,
+ <literal>-caf-all</literal> and
+ <literal>-no-caf-all</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>GHCi</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If the argument to <literal>:set prompt</literal> starts with
+ a double quote then it is read with Haskell String syntax,
+ e.g.:
+ </para>
+<programlisting>
+Prelude> :set prompt "Loaded: %s\n> "
+Loaded: Prelude
+>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ The arguments to <literal>:set set</literal>
+ and <literal>:set show</literal> can now be tab completed.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Template Haskell</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ You can now omit the splice notation for top-level declaration
+ splices, e.g.:
+ </para>
+<programlisting>
+data T = T1 | T2
+deriveMyStuff ''T
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Splices are now nestable, e.g. you can say
+ <literal>f x = $(g $(h 'x))</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ It is now possible to splice in types.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Package Handling</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Shared libraries are now supported on x86 and x86_64 Linux.
+ To use shared libraries, use the <literal>-dynamic</literal>
+ flag.
+ See <xref linkend="using-shared-libs" /> for more information.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new <literal>-fno-shared-implib</literal> flag can be used
+ to stop GHC generating the <literal>.lib</literal> import
+ library when making a dynamic library. This reduces the disk
+ space used when you do not need it.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Packages can now be identified by a "package ID", which is
+ based on a hash of the ABIs. The new flag
+ <literal>-package-id</literal> allows packages to be selected
+ by this identifier.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>--abi-hash</literal>, used thus:
+ </para>
+<programlisting>
+ghc --abi-hash M1 M2 ...
+</programlisting>
+ <para>
+ prints the combined hash of all the modules listed. It is
+ used to make package IDs.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ You can now give <literal>ghc-pkg</literal> a
+ <literal>-v0</literal> flag to make it be silent,
+ <literal>-v1</literal> for normal verbosity (the default),
+ or <literal>-v2</literal> or <literal>-v</literal> for
+ verbose output.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Rather than being a single <literal>package.conf</literal> file,
+ package databases now consist of a directory containing one
+ file per package, and a binary cache of the information.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Libraries</title>
+
+ <para>
+ GHC no longer comes with any extralibs; instead, the
+ <ulink url="http://hackage.haskell.org/platformi/">Haskell Platform</ulink>
+ will provide a consistent set of additional libraries.
+ </para>
+
+ <sect3>
+ <title>array</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.3.0.0 (was 0.2.0.0)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>Data.Array.Diff</literal> module has been moved
+ to its own package.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>base</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 4.2.0.0 (was 4.1.0.0)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We also ship a base version 3.0.3.2 (was 3.0.3.1), so legacy
+ code should continue to work. This package is now deprecated,
+ and will be removed in a future version of GHC.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Handle IO now supports automatic character set encoding
+ and newline translation. For more information, see the
+ "Unicode encoding/decoding" and "Newline conversion" sections
+ in the <literal>System.IO</literal> haddock docs.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ It is now possible to create your own handles.
+ For more information, see the
+ <literal>GHC.IO.Handle</literal> haddock docs.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>System.IO</literal> now exports two new functions,
+ <literal>openTempFileWithDefaultPermissions</literal> and
+ <literal>openBinaryTempFileWithDefaultPermissions</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>Data.Fixed</literal> now provides
+ <literal>Data</literal> and <literal>Typeable</literal>
+ instances for <literal>Fixed</literal>, and exports
+ a number of new types:
+ <literal>E0</literal>, <literal>Uni</literal>,
+ <literal>E1</literal>, <literal>Deci</literal>,
+ <literal>E2</literal>, <literal>Centi</literal>,
+ <literal>E3</literal>, <literal>Milli</literal>,
+ <literal>E9</literal> and <literal>Nano</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>Control.Exception</literal>,
+ <literal>BlockedOnDeadMVar</literal>
+ has been renamed to
+ <literal>BlockedIndefinitelyOnMVar</literal>
+ and <literal>BlockedIndefinitely</literal>
+ has been renamed to
+ <literal>BlockedIndefinitelyOnSTM</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>Control.OldException</literal> module has been
+ deprecated.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>System.Posix.Internals.setNonBlockingFD</literal>
+ now takes an additional <literal>Bool</literal> argument, so
+ you can turn blocking back on again.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A new function <literal>eof</literal> has been added to
+ <literal>Text.ParserCombinators.ReadP</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>Foreign.C.Types.CLDouble</literal> type has
+ been removed. It was never correct, but just a duplicate of
+ <literal>Foreign.C.Types.CDouble</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>Data.Data</literal>, the
+ <literal>StringRep</literal> and
+ <literal>StringConstr</literal> constructors have been
+ removed. The <literal>CharRep</literal> and
+ <literal>CharConstr</literal> constructors should be used
+ instead.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>Data.Data</literal>,
+ <literal>mkIntConstr</literal> has been deprecated in favour
+ of the new <literal>mkIntegralConstr</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>Data.Data</literal>,
+ <literal>mkFloatConstr</literal> has been deprecated in
+ favour of the new <literal>mkRealConstr</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>Data.Data</literal>,
+ <literal>mkNorepType</literal> has been deprecated in
+ favour of the new <literal>mkNoRepType</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>bytestring</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.9.1.5 (was 0.9.1.4)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>Cabal</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.8.0.0 (was 1.6.0.3)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Many API changes. See the Cabal docs for more information.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>containers</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.3.0.0 (was 0.2.0.1)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>mapAccumRWithKey</literal> has been added to
+ <literal>Data.IntMap</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A <literal>Traversable</literal> instance has been added to
+ <literal>Data.IntMap.IntMap</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The types of <literal>Data.IntMap.intersectionWith</literal>
+ and <literal>Data.IntMap.intersectionWithKey</literal> have
+ been changed from
+ </para>
+<programlisting>
+intersectionWith :: (a -> b -> a) -> IntMap a -> IntMap b -> IntMap a
+intersectionWithKey :: (Key -> a -> b -> a) -> IntMap a -> IntMap b -> IntMap a
+</programlisting>
+ <para>
+ to
+ </para>
+<programlisting>
+intersectionWith :: (a -> b -> c) -> IntMap a -> IntMap b -> IntMap c
+intersectionWithKey :: (Key -> a -> b -> c) -> IntMap a -> IntMap b -> IntMap c
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ The types of <literal>Data.IntMap.findMin</literal>
+ and <literal>Data.IntMap.findMax</literal> have
+ been changed from
+ </para>
+<programlisting>
+findMin :: IntMap a -> a
+findMax :: IntMap a -> a
+</programlisting>
+ <para>
+ to
+ </para>
+<programlisting>
+findMin :: IntMap a -> (Int,a)
+findMax :: IntMap a -> (Int,a)
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>Data.Map</literal> now exports
+ <literal>mapAccumRWithKey</literal>,
+ <literal>foldrWithKey</literal>,
+ <literal>foldlWithKey</literal> and
+ <literal>toDescList</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>Data.Sequence</literal> now exports
+ <literal>replicate</literal>,
+ <literal>replicateA</literal>,
+ <literal>replicateM</literal>,
+ <literal>iterateN</literal>,
+ <literal>unfoldr</literal>,
+ <literal>unfoldl</literal>,
+ <literal>scanl</literal>,
+ <literal>scanl1</literal>,
+ <literal>scanr</literal>,
+ <literal>scanr1</literal>,
+ <literal>tails</literal>,
+ <literal>inits</literal>,
+ <literal>takeWhileL</literal>,
+ <literal>takeWhileR</literal>,
+ <literal>dropWhileL</literal>,
+ <literal>dropWhileR</literal>,
+ <literal>spanl</literal>,
+ <literal>spanr</literal>,
+ <literal>breakl</literal>,
+ <literal>breakr</literal>,
+ <literal>partition</literal>,
+ <literal>filter</literal>,
+ <literal>sort</literal>,
+ <literal>sortBy</literal>,
+ <literal>unstableSort</literal>,
+ <literal>unstableSortBy</literal>,
+ <literal>elemIndexL</literal>,
+ <literal>elemIndicesL</literal>,
+ <literal>elemIndexR</literal>,
+ <literal>elemIndicesR</literal>,
+ <literal>findIndexL</literal>,
+ <literal>findIndicesL</literal>,
+ <literal>findIndexR</literal>,
+ <literal>findIndicesR</literal>,
+ <literal>foldlWithIndex</literal>,
+ <literal>foldrWithIndex</literal>,
+ <literal>mapWithIndex</literal>,
+ <literal>zip</literal>,
+ <literal>zipWith</literal>,
+ <literal>zip3</literal>,
+ <literal>zipWith3</literal>,
+ <literal>zip4</literal> and
+ <literal>zipWith4</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>directory</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.0.1.0 (was 1.0.0.3)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A new function <literal>copyPermissions</literal> has been
+ added to <literal>System.Directory</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>
+ dph
+ (dph-base, dph-par, dph-prim-interface, dph-prim-par,
+ dph-prim-seq, dph-seq)
+ </title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ All the dph packages are version 0.4.0.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>extensible-exceptions</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.1.1.1 (was 0.1.1.0)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>filepath</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.1.0.3 (was 1.1.0.2)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The list of characters that are invalid in filenames on
+ Windows now includes <literal>\</literal> (backslash).
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>ghc-binary</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ This is an internal package, and should not be used.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>ghc-prim</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.2.0.0 (was 0.1.0.0)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>haskell98</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.0.1.1 (was 1.0.1.0)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>hpc</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.5.0.4 (was 0.5.0.3)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>integer-gmp</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.2.0.0 (was called integer, version 0.1.0.1)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>integer-simple</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ This is a new boot package, version 0.1.0.0.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>old-locale</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.0.0.2 (was 1.0.0.1)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Date and time in ISO8601 format are now separated by
+ <literal>T</literal> rather than a space.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>old-time</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.0.0.3 (was 1.0.0.2)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>packedstring</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ This is no longer a boot package.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>pretty</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.0.1.1 (was 1.0.1.0)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>process</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.0.1.2 (was 1.0.1.1)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>random</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 1.0.0.2 (was 1.0.0.1)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>syb</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 0.1.0.2 (was 0.1.0.1)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>template-haskell</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 2.4.0.0 (was 2.3.0.1)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for <literal>inline</literal> and
+ <literal>specialise</literal> pragmas has been added.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for bang patterns has been added
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for kind annotations has been added
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for equality constraints has been added
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for type family declarations has been added
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>time</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ This is a new boot package, version 1.1.4.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>unix</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 2.4.0.0 (was 2.3.2.0)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>System.Posix.IO</literal> now exports
+ <literal>fdReadBuf</literal> and
+ <literal>fdWriteBuf</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>System.Posix.Process.executeFile</literal> now
+ returns <literal>IO a</literal> instead of
+ <literal>IO ()</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>Win32</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Version number 2.2.0.1 (was 2.2.0.0)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>System.Win32.File</literal> now exports
+ <literal>WIN32_FIND_DATA</literal>,
+ <literal>FindData</literal>,
+ <literal>getFindDataFileName</literal>,
+ <literal>findFirstFile</literal>,
+ <literal>findNextFile</literal> and
+ <literal>findClose</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>System.Win32.Info</literal> now exports
+ <literal>getCurrentDirectory</literal>,
+ <literal>getTemporaryDirectory</literal>,
+ <literal>getFullPathName</literal> and
+ <literal>searchPath</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>System.Win32.Types</literal> now exports
+ <literal>HRESULT</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new module <literal>System.Win32.Shell</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ </sect2>
+</sect1>
+
diff --git a/docs/users_guide/ug-ent.xml b/docs/users_guide/ug-ent.xml
index a5822426df..6f8bf65b7d 100644
--- a/docs/users_guide/ug-ent.xml
+++ b/docs/users_guide/ug-ent.xml
@@ -3,7 +3,7 @@
<!ENTITY flags SYSTEM "flags.xml">
<!ENTITY license SYSTEM "license.xml">
<!ENTITY intro SYSTEM "intro.xml" >
-<!ENTITY relnotes1 SYSTEM "6.10.1-notes.xml" >
+<!ENTITY relnotes1 SYSTEM "6.12.1-notes.xml" >
<!ENTITY using SYSTEM "using.xml" >
<!ENTITY runtime SYSTEM "runtime_control.xml" >
<!ENTITY prof SYSTEM "profiling.xml" >