diff options
Diffstat (limited to 'docs/users_guide/7.0.1-notes.xml')
| -rw-r--r-- | docs/users_guide/7.0.1-notes.xml | 1226 |
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> - |
