summaryrefslogtreecommitdiff
path: root/docs/users_guide/7.0.1-notes.xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/users_guide/7.0.1-notes.xml')
-rw-r--r--docs/users_guide/7.0.1-notes.xml1226
1 files changed, 0 insertions, 1226 deletions
diff --git a/docs/users_guide/7.0.1-notes.xml b/docs/users_guide/7.0.1-notes.xml
deleted file mode 100644
index 4d3e2994e6..0000000000
--- a/docs/users_guide/7.0.1-notes.xml
+++ /dev/null
@@ -1,1226 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<sect1 id="release-7-0-1">
- <title>Release notes for version 7.0.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.12 branch.
- </para>
-
- <sect2>
- <title>Highlights</title>
- <itemizedlist>
- <listitem>
- <para>
- GHC now defaults to the Haskell 2010 language standard.
- </para>
-
- <para>
- Libraries are not quite so straightforward. By default, GHC
- provides access to the <literal>base</literal> package,
- which includes the Haskell 2010 libraries, albeit with a few
- minor differences. For those who want to write strictly
- standards-conforming code we also provide
- the <literal>haskell2010</literal> package which provides
- the precise APIs specified by Haskell 2010, but because the
- module names in this package overlap with those in
- the <literal>base</literal> package it is not possible to
- use both <literal>haskell2010</literal>
- and <literal>base</literal> at the same time (this also
- applies to the <literal>array</literal> package). Hence to use
- the Haskell 2010 libraries you should hide
- the <literal>base</literal> and <literal>array</literal>
- packages, for example with GHCi:
-<screen>
-$ ghci -package haskell2010 -hide-package base -hide-package array
-</screen>
- If you are using Cabal it isn't necessary to
- hide <literal>base</literal> and <literal>array</literal>
- explicitly, just don't include them in your <literal>build-depends</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On POSIX platforms, there is a new I/O manager based on
- epoll/kqueue/poll, which allows multithreaded I/O code to
- scale to a much larger number (100k+) of threads.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHC now includes an LLVM code generator. For certain code,
- particularly arithmetic heavy code, using the LLVM code
- generator can bring some nice performance improvements.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The type checker has been overhauled, which means it is now
- able to correctly handle interactions between the type system
- extensions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The inliner has been overhauled, which should in general
- give better performance while reducing unnecessary code-size
- explosion.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Large parts of the runtime system have been overhauled, in
- particular the machinery related to blocking and wakeup of
- threads and exception throwing (<literal>throwTo</literal>).
- Several instances of pathological performance have been
- fixed, especially where large numbers of threads are
- involved.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Due to changes in the runtime system, if you are
- using <literal>Control.Parallel.Strategies</literal> from
- the <literal>parallel</literal> package, please upgrade to
- at least version 2 (preferably version 3). The
- implementation of Strategies
- in <literal>parallel-1.x</literal> will lose parallelism
- with GHC 7.0.1.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The full Haskell <literal>import</literal> syntax can now been
- used to bring modules into scope in GHCi, e.g.
- </para>
-<programlisting>
-Prelude> import Data.List as L
-Prelude Data.List> L.length "foo"
-3
-</programlisting>
- </listitem>
-
- <listitem>
- <para>
- GHC now comes with a more recent mingw bundled on Windows,
- which includes a fix for windres on Windows 7.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Language changes</title>
- <itemizedlist>
- <listitem>
- <para>
- GHC now understands the <literal>Haskell98</literal> and
- <literal>Haskell2010</literal> languages.
- </para>
-
- <para>
- These get processed before the language extension pragmas,
- and define the default sets of extensions that are enabled.
- If neither is specified, then the default is
- <literal>Haskell2010</literal> plus the
- <literal>MonoPatBinds</literal> extension.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHC now supports the <literal>DoAndIfThenElse</literal>
- extension, which is part of the Haskell 2010 standard.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Datatype contexts, such as the <literal>Eq a</literal> in
- </para>
-<programlisting>
-data Eq a => Set a = NilSet | ConsSet a (Set a)
-</programlisting>
- <para>
- are now treated as an extension
- <literal>DatatypeContexts</literal> (on by default) by GHC.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHC's support for unicode source has been improved, including
- removing support for U+22EF for the <literal>..</literal>
- symbol. See <xref linkend="unicode-syntax" /> for more details.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Pragmas are now reread after preprocessing. In particular,
- this means that if a pragma is used to turn CPP on, then other
- pragmas can be put in CPP conditionals.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>TypeOperators</literal> extension now allows
- instance heads to use infix syntax.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>PackageImports</literal> extension now understands
- <literal>this</literal> to mean the current package.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>INLINE</literal> and <literal>NOINLINE</literal>
- pragmas can now take a <literal>CONLIKE</literal> modifier,
- which indicates that the right hand side is cheap to compute,
- and can thus be duplicated more freely.
- See <xref linkend="conlike" /> for more details.
- </para>
- </listitem>
-
- <listitem>
- <para>
- A <literal>ForceSpecConstr</literal> annotation on a type, e.g.
- </para>
-<programlisting>
-import SpecConstr
-{-# ANN type SPEC ForceSpecConstr #-}
-</programlisting>
- <para>
- can be used to force GHC to fully specialise argument of that
- type.
- </para>
- </listitem>
-
- <listitem>
- <para>
- A <literal>NoSpecConstr</literal> annotation on a type, e.g.
- </para>
-<programlisting>
-import SpecConstr
-{-# ANN type T NoSpecConstr #-}
-</programlisting>
- <para>
- can be used to prevent SpecConstr from specialising on
- arguments of that type.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is are two experimental new extensions
- <literal>AlternativeLayoutRule</literal> and
- <literal>AlternativeLayoutRuleTransitional</literal>,
- which are for exploring alternative layout rules in Haskell'.
- The details are subject to change, so we advise against using
- them in real code for now.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>NewQualifiedOperators</literal> extension has
- been deprecated, as it was rejected by the Haskell' committee.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Warnings</title>
- <itemizedlist>
- <listitem>
- <para>
- There is now a warning for missing import lists, controlled
- by the new <literal>-fwarn-missing-import-lists</literal> flag.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHC will now warn about <literal>SPECIALISE</literal> and
- <literal>UNPACK</literal> pragmas that have no effect.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>DLLs</title>
- <itemizedlist>
- <listitem>
- <para>
- Shared libraries are once again supported on Windows.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Shared libraries are now supported on OS X, both on x86 and on
- PowerPC. The new <literal>-dylib-install-name</literal> GHC
- flag is used to set the location of the dynamic library.
- See <xref linkend="finding-shared-libs" /> for more details.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Runtime system</title>
-
- <itemizedlist>
- <listitem>
- <para>
- For security reasons, by default, the only RTS flag that
- programs accept is <literal>+RTS --info</literal>. If you want
- the full range of RTS flags then you need to link with the new
- <literal>-rtsopts</literal> flag. See
- <xref linkend="options-linker" /> for more details.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The RTS now exports a function <literal>setKeepCAFs</literal>
- which is important when loading Haskell DLLs dynamically, as
- a DLL may refer to CAFs that have already been GCed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The garbage collector no longer allows you to specify a number
- of steps; there are now always 2. The <literal>-T</literal>
- RTS flag has thus been removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- A new RTS flag <literal>-H</literal> causes the RTS to use a
- larger nursery, but without exceeding the amount of memory
- that the application is already using. It makes some programs
- go slower, but others go faster.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHC now returns memory to the OS, if memory usage peaks and
- then drops again. This is mainly useful for long running
- processes which normally use very little memory, but
- occasionally need a lot of memory for a short period of time.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On OS X, eventLog events are now available as DTrace probes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The PAPI support has been improved. The new RTS flag
- <literal>-a#0x40000000</literal> can be used to tell the RTS
- to collect the native PAPI event <literal>0x40000000</literal>.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Compiler</title>
- <itemizedlist>
- <listitem>
- <para>
- GHC now defaults to <literal>--make</literal> mode, i.e. GHC
- will chase dependencies for you automatically by default.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHC now includes an LLVM code generator.
- </para>
- <para>
- This includes a number of new flags:
- a flag to tell GHC to use LLVM, <literal>-fllvm</literal>;
- a flag to dump the LLVM input ,<literal>-ddump-llvm</literal>;
- flags to keep the LLVM intermediate files,
- <literal>-keep-llvm-file</literal> and
- <literal>-keep-llvm-files</literal>;
- flags to set the location and options for the LLVM optimiser
- and compiler,
- <literal>-pgmlo</literal>,
- <literal>-pgmlc</literal>,
- <literal>-optlo</literal> and
- <literal>-optlc</literal>.
- The LLVM code generator requires LLVM version 2.7 or later on
- your path.
- </para>
- </listitem>
-
- <listitem>
- <para>
- It is now possible to use <literal>-fno-code</literal> with
- <literal>--make</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The new flag <literal>-dsuppress-coercions</literal> controls
- whether GHC prints coercions in core dumps.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The new flag <literal>-dsuppress-module-prefixes</literal>
- controls whether GHC prints module qualification prefixes
- in core dumps.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The inliner has been overhauled. The most significant
- user-visible change is that only saturated functions are
- inlined, e.g.
- </para>
-<programlisting>
-(.) f g x = f (g x)
-</programlisting>
- <para>
- would only be inlined if <literal>(.)</literal> is applied to 3
- arguments, while
- </para>
-<programlisting>
-(.) f g = \x -> f (g x)
-</programlisting>
- <para>
- will be inlined if only applied to 2 arguments.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>-finline-if-enough-args</literal> flag is no
- longer supported.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Column numbers in warnings and error messages now start at 1,
- as is more standard, rather than 0.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHCi now understands most linker scripts. In particular, this
- means that GHCi is able to load the C pthread library.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>ghc --info</literal> output has been updated:
- </para>
- <para>
- It now includes the
- location of the global package database, in the
- <literal>Global Package DB</literal> field.
- </para>
- <para>
- It now includes the build, host and target platforms, in the
- <literal>Build platform</literal>,
- <literal>Host platform</literal> and
- <literal>Target platform</literal> fields.
- </para>
- <para>
- It now includes a <literal>Have llvm code generator</literal>
- field.
- </para>
- <para>
- The <literal>Win32 DLLs</literal> field has been removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The registerised via-C backend, and the
- <literal>-fvia-C</literal> flag, have been deprecated. The poor
- floating-point performance in the x86 native code generator
- has now been fixed, so we don't believe there is still any
- reason to use the via-C backend.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is now a new flag <literal>--supported-extensions</literal>,
- which currently behaves the same as
- <literal>--supported-languages</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- GHC progress output such as
- </para>
-<programlisting>
-[ 1 of 5] Compiling Foo ( Foo.hs, Foo.o )
-</programlisting>
- <para>
- is now sent to stdout rather than stderr.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The new flag <literal>-fexpose-all-unfoldings</literal>
- makes GHC put unfoldings for <emphasis>everything</emphasis>
- in the interface file.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There are two new flags, <literal>-fno-specialise</literal>
- and <literal>-fno-float-in</literal>, for disabling the
- specialise and float-in passes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The new flag <literal>-fstrictness-before=<replaceable>n</replaceable></literal> tells
- GHC to run an additional strictness analysis pass
- before simplifier phase <replaceable>n</replaceable>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new flag
- <literal>-funfolding-dict-discount</literal>
- for tweaking the optimiser's behaviour.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>-fspec-inline-join-points</literal> flag has been
- removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>-dynload wrapper</literal> flag has been
- removed.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>GHCi</title>
- <itemizedlist>
- <listitem>
- <para>
- GHCi now understands layout in multi-line commands, so
- this now works:
- </para>
-<programlisting>
-Prelude> :{
-Prelude| let x = 1
-Prelude| y = 2 in x + y
-Prelude| :}
-3
-</programlisting>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Template Haskell and Quasi-Quoters</title>
- <itemizedlist>
- <listitem>
- <para>
- It is now possible to quasi-quote patterns with
- <literal>[p| ... |]</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- It is no longer to use a <literal>$</literal> before the
- name of a quasi-quoter, e.g. one can now say
- <literal>[expr| ... |]</literal> rather than
- <literal>[$expr| ... |]</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- It is now possible to use a quasi-quoter for types, e.g.
- <literal>f :: [$qq| ... |]</literal>
- </para>
- </listitem>
-
- <listitem>
- <para>
- It is now possible to quasi-quote existentials and GADTs.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>GHC API</title>
- <itemizedlist>
- <listitem>
- <para>
- There are now <literal>Data</literal> and
- <literal>Typeable</literal> instances for the
- HsSyn typed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- As language extensions are not applied until after the base
- language (Haskell98, Haskell2010 or the default) has been
- selected, it is now necessary to tell the GHC API the point
- at which the extension flags should be processed. Normally
- this is done by calling
- <literal>DynFlags.flattenExtensionFlags</literal> once all
- the flags and pragmas have been read.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Libraries</title>
-
- <sect3>
- <title>array</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 0.3.0.2 (was 0.3.0.1)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>base</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 4.3.0.0 (was 4.2.0.2)
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new asynchronous exception control API
- in <literal>Control.Exception</literal>, using the
- new functions
- <literal>mask :: ((forall a. IO a -> IO a) -> IO b) -> IO b</literal>
- and <literal>mask_ :: IO a -> IO a</literal>
- rather than the old
- <literal>block</literal> and <literal>unblock</literal>.
- There are also functions
- <literal>uninterruptibleMask :: ((forall a. IO a -> IO a) -> IO b) -> IO b</literal>
- and
- <literal>getMaskingState :: IO MaskingState</literal>,
- and a type
- <literal>MaskingState</literal>, as well as
- <literal>forkIOUnmasked :: IO () -> IO ThreadId</literal>
- in <literal>Control.Concurrent</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>Control.Monad</literal> exports a new function
- <literal>void :: Functor f => f a -> f ()</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>Data.Tuple</literal> exports a new function
- <literal>swap :: (a,b) -> (b,a)</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>System.IO</literal> exports a new function
- <literal>hGetBufSome :: Handle -> Ptr a -> Int -> IO Int</literal>
- which is like <literal>hGetBuf</literal> but can
- return short reads.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new function
- <literal>mfilter :: MonadPlus m => (a -> Bool) -> m a -> m a</literal>
- in
- <literal>Control.Monad</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>Foreign.Marshal</literal> module now
- exports
- <literal>unsafeLocalState :: IO a -> a</literal>
- as specified by Haskell 2010.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal></literal>
- module now exports four new functions specified by
- Haskell 2010:
- <literal>castCUCharToChar :: CUChar -> Char</literal>,
- <literal>castCharToCUChar :: Char -> CUChar</literal>,
- <literal>castCSCharToChar :: CSChar -> Char</literal> and
- <literal>castCharToCSChar :: Char -> CSChar</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>Foreign.Marshal.Alloc</literal>
- module now exports
- <literal>allocaBytesAligned :: Int -> Int -> (Ptr a -> IO b) -> IO b</literal>
- for allocating memory with a particular alignment.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new function
- <literal>numSparks :: IO Int</literal>
- in <literal>GHC.Conc</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>Data.Either.partitionEithers</literal>
- in now lazier.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is now a <literal>Typeable</literal> instance for
- <literal>Data.Unique.Unique</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>Control.Concurrent.SampleVar.SampleVar</literal>
- is now an abstract type.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There are now
- <literal>Applicative</literal>,
- <literal>Alternative</literal> and
- <literal>MonadPlus</literal>
- instances for <literal>STM</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There are now <literal>Applicative</literal>,
- <literal>Monad</literal> and
- <literal>MonadFix</literal>
- instances for <literal>Either</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There are now
- <literal>Ord</literal>,
- <literal>Read</literal> and
- <literal>Show</literal> instances for
- <literal>Newline</literal> and
- <literal>NewlineMode</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is now a <literal>Show</literal> instance for
- <literal>TextEncoding</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>unGetChan</literal> and
- <literal>isEmptyChan</literal> functions in
- <literal>Control.Concurrent.Chan</literal> are now
- deprecated.
- <literal>Control.Concurrent.STM.TChan</literal>
- should be used instead if you need that
- functionality.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>Read Integer</literal> instance now
- matches the standard definition.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>base 3 compat</title>
- <itemizedlist>
- <listitem>
- <para>
- We no longer ship a base 3 compat package
- </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>bytestring</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 0.9.1.8 (was 0.9.1.7)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Cabal</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.10.0.0 (was 1.8.0.6)
- </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.4.0.0 (was 0.3.0.0)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Strictness is now more consistent, with containers
- being strict in their elements even in singleton
- cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new function
- <literal>insertLookupWithKey'</literal> in
- <literal>Data.Map</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>foldWithKey</literal> function in
- <literal>Data.Map</literal> has been deprecated in
- favour of <literal>foldrWithKey</literal>.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>directory</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.1.0.0 (was 1.0.1.1)
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <literal>System.Directory</literal> module
- now exports the <literal>Permissions</literal> type
- abstractly. There are also new functions
- <literal>setOwnerReadable</literal>,
- <literal>setOwnerWritable</literal>,
- <literal>setOwnerExecutable</literal> and
- <literal>setOwnerSearchable</literal>, and
- a new value <literal>emptyPermissions</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.2 (was 0.1.1.1)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>filepath</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.2.0.0 (was 1.1.0.4)
- </para>
- </listitem>
-
- <listitem>
- <para>
- The current directory is now <literal>"."</literal>
- rather than <literal>""</literal>.
- </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>
- This is an internal package, and should not be used.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>haskell98</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.1.0.0 (was 1.0.1.1)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In the <literal>Directory</literal> module, the
- <literal>Permissions</literal> type and the
- <literal>getPermissions</literal> and
- <literal>setPermissions</literal> functions are now
- different to their equivalents in
- <literal>base:System.Directory</literal>.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>haskell2010</title>
- <itemizedlist>
- <listitem>
- <para>
- This is a new boot package, version 1.0.0.0.
- It is not exposed by default.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>hpc</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 0.5.0.6 (was 0.5.0.5)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>integer-gmp</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 0.2.0.2 (was 0.2.0.1)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>old-locale</title>
- <itemizedlist>
- <listitem>
- <para>
- No change (version 1.0.0.2)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>old-time</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.0.0.6 (was 1.0.0.5)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>pretty</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.0.1.2 (was 1.0.1.1)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>process</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.0.1.4 (was 1.0.1.3)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>random</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.0.0.3 (was 1.0.0.2)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>syb</title>
- <itemizedlist>
- <listitem>
- <para>
- The syb package is no longer included with GHC.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>template-haskell</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 2.5.0.0 (was 2.4.0.1)
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new type synonym <literal>DecsQ</literal>
- in <literal>Language.Haskell.TH.Lib</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new <literal>StringPrimL</literal>
- constructor in
- <literal>Language.Haskell.TH.Syntax.Lit</literal>,
- and a new helper function
- <literal>stringPrimL</literal> for it in
- <literal>Language.Haskell.TH.Lib</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new function <literal>quoteFile</literal>
- in <literal>Language.Haskell.TH.Quote</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The
- <literal>Language.Haskell.TH.Quote.QuasiQuoter</literal>
- type has two new fields:
- <literal>quoteType</literal> and
- <literal>quoteDec</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There is a new <literal>ClassInstance</literal>
- type in <literal>Language.Haskell.TH.Syntax</literal>.
- The
- <literal>Language.Haskell.TH.Syntax.Info.ClassI</literal>
- constructor now includes a value of this type, which
- allows instance information to be queried via the
- new <literal>isClassInstance</literal>
- and <literal>classInstances</literal> functions.
- There is also a new method
- <literal>qClassInstances</literal> in the
- <literal>Quasi</literal> class.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>time</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 1.2.0.3 (was 1.1.4)
- </para>
- </listitem>
-
- <listitem>
- <para>
- The types provided by the time package now include
- <literal>Data</literal> instances.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>unix</title>
- <itemizedlist>
- <listitem>
- <para>
- Version number 2.4.1.0 (was 2.4.0.2)
- </para>
- </listitem>
-
- <listitem>
- <para>
- There are three new helper function in
- <literal>System.Posix.Error</literal>:
- <literal>throwErrnoPathIfRetry</literal>,
- <literal>throwErrnoPathIfNullRetry</literal> and
- <literal>throwErrnoPathIfMinus1Retry</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- There are three new functions in
- <literal>System.Posix.User</literal>:
- <literal>setEffectiveUserID</literal>,
- <literal>setEffectiveGroupID</literal> and
- <literal>setGroups</literal>.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
-</sect1>
-