diff options
| author | Simon Peyton Jones <simonpj@microsoft.com> | 2011-07-18 23:11:02 +0100 |
|---|---|---|
| committer | Simon Peyton Jones <simonpj@microsoft.com> | 2011-07-18 23:11:02 +0100 |
| commit | 5c9dfadd979ca3ccb8dd7c21ddb9fb0fe9cdb3fe (patch) | |
| tree | aedac951e211cd35fa93140fbb7640cac555784a /docs/users_guide/6.6-notes.xml | |
| parent | 72883e48d93528acf44e3ba67c66a66833fe61f3 (diff) | |
| parent | 8f4f29f655fdda443861152a24588fcaba29b168 (diff) | |
| download | haskell-5c9dfadd979ca3ccb8dd7c21ddb9fb0fe9cdb3fe.tar.gz | |
Merge branch 'master' of http://darcs.haskell.org/ghc
Diffstat (limited to 'docs/users_guide/6.6-notes.xml')
| -rw-r--r-- | docs/users_guide/6.6-notes.xml | 1718 |
1 files changed, 0 insertions, 1718 deletions
diff --git a/docs/users_guide/6.6-notes.xml b/docs/users_guide/6.6-notes.xml deleted file mode 100644 index a04b99e4c0..0000000000 --- a/docs/users_guide/6.6-notes.xml +++ /dev/null @@ -1,1718 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<sect1 id="release-6-6"> - <title>Release notes for version 6.6</title> - - <sect2> - <title>User-visible compiler changes</title> - <itemizedlist> - <listitem> - <para> - GHC now supports SMP: - when you compile with <option>-threaded</option>, you now get - an RTS flag <option>-N</option> that allows you to specify the - number of OS threads that GHC should use. Defaults to 1. - See <xref linkend="using-smp" /> and <xref - linkend="lang-parallel" />. - </para> - </listitem> - <listitem> - <para> - GHC now handles impredicative polymorphism; see <xref linkend="impredicative-polymorphism" />. - </para> - </listitem> - <listitem> - <para> - There are significant changes to the way scoped type variables work, - and some programs that used to compile may no longer do so. - The new story is documented in <xref linkend="scoped-type-variables" />. - (<ulink url="http://www.haskell.org/pipermail/glasgow-haskell-users/2006-January/009565.html"> Simon's e-mail</ulink> - gives some background, but the user manual should be complete (tell - us if not), and - certainly takes precedence if there is any conflict.) - </para> - </listitem> - <listitem> - <para> - GHC now supports bang patterns to require a function is strict - in a given argument, e.g. - <programlisting> - f (!x, y) = [x,y]</programlisting> - is equivalent to - <programlisting> - f (x, y) | x `seq` False = undefined - | otherwise = [x,y]</programlisting> - See <xref linkend="bang-patterns" /> for more details. - </para> - </listitem> - <listitem> - <para> - The restriction that you cannot use two packages together if - they contain a module with the same name has been removed. - In implementation terms, the package name is now included in - every exported symbol name in the object file, so that - modules with the same name in different packages do not - clash. See <xref linkend="package-overlaps" />. - </para> - </listitem> - <listitem> - <para> - GHC now treats source files as UTF-8 (ASCII is a strict - subset of UTF-8, so ASCII source files will continue to - work as before). However, invalid UTF-8 sequences are - ignored in comments, so ASCII code with comments in, for - example, Latin-1 will also work. - </para> - - <para> - A way to have Latin-1 source files pre-processed by GHC is - described in <xref linkend="pre-processor" />. - </para> - </listitem> - <listitem> - <para> - GADTs can now use record syntax. Also, if the datatype could - have been declared with Haskell 98 syntax then deriving - clauses are permitted. For more info see <xref linkend="gadt" />. - </para> - </listitem> - <listitem> - <para> - There is a new pragma <literal>LANGUAGE</literal> which allows - extensions to be specified portably, i.e. without having to - resort to the <literal>OPTIONS_GHC</literal> pragma and giving - GHC-specific options. The arguments to the pragma are the same - extensions that Cabal knows about. More info in - <xref linkend="language-pragma" />. - </para> - </listitem> - <listitem> - <para> - When you use <command>ghc --make</command>, GHC will now take - the executable filename from the name of the file containing - the <literal>Main</literal> module rather than using - <filename>a.out</filename>. The <filename>.exe</filename> - extension is appended on Windows, and it can of course be - overridden with <option>-o</option>. - </para> - </listitem> - <listitem> - <para> - GHC's garbage collector now deals more intelligently with - mutable data, so you mostly no longer need to worry about GC - performance when a lot of memory is taken up by - <literal>STArray</literal>s, <literal>IOArray</literal>s, - <literal>STRef</literal>s or <literal>IORef</literal>s. - For more details see - <ulink url="http://hackage.haskell.org/trac/ghc/ticket/650">trac bug #650</ulink>. - </para> - </listitem> - <listitem> - <para> - GHC now allows more generalisation when typing mutually - recursive bindings, resulting in more programs being accepted. - See <xref linkend="typing-binds" /> for more details. - </para> - </listitem> - <listitem> - <para> - The rules for instance declarations have been further relaxed. - You are now permitted to have instances whose heads contain - only type variables, e.g. - <programlisting> - instance C a</programlisting> - and instances whose constraints are not only type variables, - e.g. - <programlisting> - instance C2 Int a => C3 [a] b</programlisting> - For more details, see <xref linkend="instance-rules" />. - </para> - </listitem> - <listitem> - <para> - The following flags (and, where appropriate, their inverses) - used to be static (can only be given on - the command line) but are now dynamic (can also be given in - an <literal>OPTIONS_GHC</literal> pragma or with - <literal>:set</literal> in GHCi): - <option>-c</option>, - <option>-hcsuf</option>, - <option>-hidir</option>, - <option>-hisuf</option>, - <option>-o</option>, - <option>-odir</option>, - <option>-ohi</option>, - <option>-osuf</option>, - <option>-keep-hc-file</option>, - <option>-keep-s-file</option>, - <option>-keep-raw-s-file</option>, - <option>-keep-tmp-files</option>, - <option>-tmpdir</option>, - <option>-i</option>, - <option>-package</option>, - <option>-hide-package</option>, - <option>-ignore-package</option>, - <option>-package-conf</option>, - <option>-no-user-package-conf</option>, - <option>-fcontext-stack</option>, - <option>-fexcess-precision</option>, - <option>-fignore-asserts</option>, - <option>-fignore-interface-pragmas</option>, - <option>-I</option>, - <option>-framework</option>, - <option>-framework-path</option>, - <option>-l</option>, - <option>-L</option>, - <option>-main-is</option>, - <option>-no-hs-main</option>, - <option>-split-objs</option>, - <option>-pgmL</option>, - <option>-pgmP</option>, - <option>-pgmc</option>, - <option>-pgma</option>, - <option>-pgml</option>, - <option>-pgmdll</option>, - <option>-pgmF</option>, - <option>-optl</option>, - <option>-optdll</option>, - <option>-optdep</option>, - <option>-fno-asm-mangling</option>. - See <xref linkend="static-dynamic-flags" /> for more on - the meaning of static and dynamic flags, and - <xref linkend="flag-reference" /> for more on the flags - themselves. - </para> - </listitem> - <listitem> - <para> - There is a new flag <option>-x</option> for overriding the - default behaviour for source files; see - <xref linkend="overriding-suffixes" /> details. - </para> - </listitem> - <listitem> - <para> - The - <option>-no-recomp</option><indexterm><primary><option>-no-recomp</option></primary></indexterm> - option is now called - <option>-fforce-recomp</option><indexterm><primary><option>-fforce-recomp</option></primary></indexterm>. - (the old name is still accepted for backwards compatibility, - but will be removed in the future). - </para> - </listitem> - <listitem> - <para> - The <option>-fglobalise-toplev-names</option> - flag has been removed. - </para> - </listitem> - <listitem> - <para> - The <option>-fallow-overlapping-instances</option> flag is - implied by the <option>-fallow-incoherent-instances</option> - flag. - </para> - </listitem> - <listitem> - <para> - The directory that the <filename>foo_stub.c</filename> and - <filename>foo_stub.h</filename> files are put in can now be - controlled with the <option>-stubdir</option> flag. - See <xref linkend="options-output" /> for more details. - </para> - </listitem> - <listitem> - <para> - When the <option>-fno-implicit-prelude</option> is given, - the equality test performed when pattern matching against an - overloaded numeric literal now uses the - <literal>(==)</literal> in scope, rather than the one from - <literal>Prelude</literal>. Likewise, the subtraction and - inequality test performed when pattern matching against - <literal>n+k</literal> patterns uses the - <literal>(-)</literal> and <literal>(>=)</literal> in scope. - </para> - </listitem> - <listitem> - <para> - Another change to <option>-fno-implicit-prelude</option>: - with the exception of the arrow syntax, the types of - functions used by sugar (such as do notation, numeric - literal patterns) need not match the types of the - <literal>Prelude</literal> functions normally used. - </para> - </listitem> - <listitem> - <para> - The <literal>InstalledPackageInfo</literal> syntax has - changed. Now - instead of <literal>extra-libs</literal> we have - <literal>extra-libraries</literal>, - instead of <literal>extra-hugs-opts</literal> we have - <literal>hugs-options</literal>, - instead of <literal>extra-cc-opts</literal> we have - <literal>cc-options</literal>, - instead of <literal>extra-ld-opts</literal> we have - <literal>ld-options</literal>, - and instead of <literal>extra-frameworks</literal> we have - <literal>frameworks</literal>. - See <xref linkend="installed-pkg-info" /> for details. - </para> - </listitem> - <listitem> - <para> - If you <literal>newtype</literal> the IO monad, e.g. - <programlisting> - newtype MyIO a = MyIO (IO a)</programlisting> - then GHC will now allow you to have FFI calls return - <literal>MyIO <replaceable>t</replaceable></literal> - rather than just - <literal>IO <replaceable>t</replaceable></literal>. - See <xref linkend="ffi-newtype-io"/> - </para> - </listitem> - <listitem> <para> GHC's mechansim for deriving user-defined classes - for newtypes has been further generalised, to multi-parameter type - classes and higher-kinded types. See <xref - linkend="newtype-deriving"/>. - </para></listitem> - <listitem> - <para> - By default, pattern bindings in GHC are now monomorphic. - This means that some valid Haskell 98 programs will get - rejected, but we believe they will be few in number. - To revert to the old behaviour use the - <option>-fno-mono-pat-binds</option> flag. - More details are in <xref linkend="options-language" />. - </para> - </listitem> - <listitem> - <para> - GHCi already does more defaulting than Haskell 98 so that, for - example, <literal>reverse []</literal> shows a result rather - than giving an ambiguous type variable error. There is now a - flag <option>-fextended-default-rules</option> to use these - defaulting rules with GHC too. - More details are in <xref linkend="extended-default-rules" />. - </para> - </listitem> - <listitem> - <para> - You can now give both class and instance declarations in - <filename>.hs-boot</filename> files. More details in - <xref linkend="mutual-recursion" />. - </para> - </listitem> - <listitem> - <para> - Linear implicit parameters have been scheduled for removal for some - time. In 6.6 we've removed them from the user manual, and they may - well disappear from the compiler itself in 6.6.1. - </para> - </listitem> - <listitem> - <para> - If the program is idle for a certain amount of time then GHC - will now take the opportunity to do a major garbage collection. - The amount of idle time that is required before that happens - is controlled by the new <literal>-I</literal> RTS flag. - There is more detail in <xref linkend="rts-options-gc" />. - </para> - </listitem> - <listitem> - <para> - It is now possible to control the frequency that the RTS clock - ticks at with the new <literal>-V</literal> RTS flag. This is - normally handled automatically by other flags, but this flag - is needed if you want to increase the resolution of the time - profiler. - For more details see <xref linkend="rts-options-misc" />. - </para> - </listitem> - <listitem> - <para> - The old syntax for FFI declarations (deprecated since 5.04) - is no longer accepted. - </para> - </listitem> - <listitem> - <para> - The <option>-split-objs</option> flag, which when used to compile - libraries means executables using the library will be smaller, - can now be used with <option>--make</option> and hence - can be used by cabal. - See <xref linkend="options-linker" /> for more information. - </para> - </listitem> - <listitem> - <para> - Template Haskell used to have limited support for type signatures in - patterns, but since that design is in flux for Haskell (let alone - Template Haskell), we've removed type signatures in patterns from - Template Haskell. - </para> - </listitem> - <listitem> - <para> - GHC now supports postfix operators, as a simple generalisation of - left sections (<xref linkend="postfix-operators"/>). - </para> - </listitem> - <listitem> - <para> - Parallel arrays, as enabled by <literal>-fparr</literal>, no - longer work. They'll be coming back shortly, in full glory. - </para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>GHCi changes</title> - - <itemizedlist> - <listitem> - <para> - GHCi now allows tab completion of in-scope names and modules - on platforms that use readline (i.e. not Windows). - </para> - </listitem> - <listitem> - <para> - GHCi now has a <literal>:main</literal> command that allows - you to call the <literal>main</literal> function with - command-line arguments. - See <xref linkend="ghci-commands" /> for more information. - </para> - </listitem> - <listitem> - <para> - GHCi now has <literal>:ctags</literal> and - <literal>:etags</literal> commands to generate tags files for - vi-style and emacs-style editors respectively. - See <xref linkend="ghci-commands" /> for more information. - </para> - </listitem> - <listitem> - <para> - GHCi now has an <literal>:edit</literal> command which pops - up an editor on the most recently loaded file, or a - specified file. See <xref linkend="ghci-commands" /> for - more information. - </para> - </listitem> - <listitem> - <para> - GHCi now invokes <literal>print</literal> by default on the - result of IO actions and bindings at the prompt. This is - occasionally not what you want, so it can be disabled (at - least for bindings) with - <literal>:set -fno-print-bind-result</literal>. See <xref - linkend="ghci-stmts" />.</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Libraries</title> - <para> - Libraries are now divided into core libraries (those that are - necessary to build GHC) and extra libraries. Decoupling the extra - libraries means that they can release independently of GHC - releases, and makes development builds of GHC quicker as they no - longer need to build unnecessary libraries. - </para> - - <para> - The hslibs libraries have finally been removed. - </para> - </sect2> - - <sect2> - <title>Core Libraries</title> - <sect3> - <title>base</title> - <itemizedlist> - <listitem> - <para> - Version number 2.1 (was 1.0). - </para> - </listitem> - <listitem> - <para> - We now have <literal>Read</literal> and - <literal>Show</literal> instances for up to 15-tuples (used - to be up to 5-tuples). - </para> - </listitem> - <listitem> - <para> - New module <literal>Control.Applicative</literal> that - describes a structure intermediate between a functor and - a monad: it provides pure expressions and sequencing, but - no binding. - </para> - </listitem> - <listitem> - <para> - <literal>Control.Exception</literal> now exports - <literal>bracketOnError</literal>, which behaves like - <literal>bracket</literal> but only runs the final - action if the main action raised an error. - </para> - </listitem> - <listitem> - <para> - There is a new module - <literal>Control.Monad.Instances</literal> which - provides <literal>Monad</literal> and - <literal>Functor</literal> instances for - <literal>((->) r)</literal> (were in - <literal>mtl</literal>'s - <literal>Control.Monad.Reader</literal>), - a <literal>Functor</literal> instance for - <literal>(Either a)</literal> (was in <literal>mtl</literal>'s - <literal>Control.Monad.Error</literal>) and a - <literal>Functor</literal> instance for - <literal>((,) a)</literal> (new). - </para> - </listitem> - <listitem> - <para> - The <literal>MonadFix</literal> instance for - <literal>((->) r)</literal> is now in - <literal>Control.Monad.Fix</literal> (was in - <literal>mtl</literal>'s - <literal>Control.Monad.Reader</literal>). - </para> - </listitem> - <listitem> - <para> - <literal>Control.Monad.ST</literal> now exports - <literal>unsafeSTToIO</literal>. - </para> - </listitem> - <listitem> - <para> - The <literal>HasBounds</literal> class has been removed from - <literal>Data.Array.Base</literal>, and its - <literal>bounds</literal> method is now in the - <literal>IArray</literal> class. The - <literal>MArray</literal> class - has also gained a method <literal>getBounds</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Array.Base</literal> now provides an - <literal>MArray (STArray s) e (Lazy.ST s)</literal> - instance. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Array.Storable</literal> now exports a - function <literal>unsafeForeignPtrToStorableArray</literal>. - </para> - </listitem> - <listitem> - <para> - The new <literal>Data.ByteString</literal> hierarchy - provides time and space-efficient byte vectors. - The old <literal>Data.PackedString</literal> module is now - deprecated as a result, although there is not yet a - replacement if you need full unicode support. - </para> - </listitem> - <listitem> - <para> - <literal>GHC.Exts</literal> now provides a function - <literal>inline</literal> which, provided the RHS is visible - to the compiler, forcibly inlines its argument. - Otherwise, it acts like <literal>id</literal>. - For more details, see <xref linkend="special-ids" />. - </para> - </listitem> - <listitem> - <para> - <literal>GHC.Exts</literal> now provides a function - <literal>lazy</literal>, where <literal>lazy f</literal> - behaves like <literal>f</literal>, except GHC is forced - to believe that it is lazy in its first argument. - For more details, see <xref linkend="special-ids" />. - </para> - </listitem> - <listitem> - <para> - <literal>Data.FiniteMap</literal> has been removed - (deprecated since 6.4). Use <literal>Data.Map</literal> - instead. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Char</literal> now exports - <literal>isLetter</literal>, - <literal>isMark</literal>, - <literal>isNumber</literal>, - <literal>isPunctuation</literal>, - <literal>isSymbol</literal>, - <literal>isSeparator</literal>, - <literal>isAsciiUpper</literal>, - <literal>isAsciiLower</literal> and - <literal>toTitle</literal>. - It also exports a function - <literal>generalCategory</literal> that tells you the - category of a character in terms of a datatype - <literal>GeneralCategory</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Dynamic</literal> now exports a function - <literal>dynTypeRep</literal>. - </para> - </listitem> - <listitem> - <para> - There is a new module <literal>Data.Eq</literal> which - just exports the <literal>Eq</literal> class. - Likewise, a new module <literal>Data.Ord</literal> - exports the <literal>Ord</literal> class, as well as the - handy <literal>comparing</literal> function. - </para> - </listitem> - <listitem> - <para> - There is a new module <literal>Data.Fixed</literal> - providing fixed-precision arithmetic. - </para> - </listitem> - <listitem> - <para> - There is a new module <literal>Data.Foldable</literal> - providing a class for foldable datatypes. It gives instances - for <literal>Maybe</literal>, <literal>[]</literal> and - <literal>Array i</literal>. - </para> - </listitem> - <listitem> - <para> - There is a new module <literal>Data.Traversable</literal> - providing a class for data structures that can be traversed - from left to right. It gives instances - for <literal>Maybe</literal>, <literal>[]</literal> and - <literal>Array i</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Data.FunctorM</literal> has been deprecated; - use <literal>Data.Foldable</literal> and - <literal>Data.Traversable</literal> instead. - </para> - </listitem> - <listitem> - <para> - The <literal>toConstr</literal> definitions for tuples in - <literal>Data.Generics.Instances</literal> now actually - evaluate their arguments to tuples before returning - anything. - </para> - </listitem> - <listitem> - <para> - <literal>Data.IntMap</literal> now exports - <literal>notMember</literal>, - <literal>alter</literal>, - <literal>mapMaybe</literal>, - <literal>mapMaybeWithKey</literal>, - <literal>mapEither</literal> and - <literal>mapEitherWithKey</literal>. - It also has <literal>Monoid</literal>, - <literal>Foldable</literal> and <literal>Read</literal> - instances. - </para> - </listitem> - <listitem> - <para> - <literal>Data.IntSet</literal> now exports - <literal>notMember</literal>. It also has - <literal>Monoid</literal> and <literal>Read</literal> - instances. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Map</literal> now exports - <literal>notMember</literal>, - <literal>alter</literal>, - <literal>mapMaybe</literal>, - <literal>mapMaybeWithKey</literal>, - <literal>mapEither</literal>, - <literal>mapEitherWithKey</literal>, - <literal>minView</literal> and - <literal>maxView</literal>. - It also has <literal>Monoid</literal>, - <literal>Traversable</literal>, <literal>Foldable</literal> - and <literal>Read</literal> instances. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Set</literal> now exports - <literal>notMember</literal>, - <literal>minView</literal> and - <literal>maxView</literal>. - It also has <literal>Monoid</literal>, - <literal>Foldable</literal> - and <literal>Read</literal> instances. - </para> - - <para> - The old, deprecated (since 6.4) interface consisting of - <literal>emptySet</literal>, - <literal>mkSet</literal>, - <literal>setToList</literal>, - <literal>unitSet</literal>, - <literal>elementOf</literal>, - <literal>isEmptySet</literal>, - <literal>cardinality</literal>, - <literal>unionManySets</literal>, - <literal>minusSet</literal>, - <literal>mapSet</literal>, - <literal>intersect</literal>, - <literal>addToSet</literal> and - <literal>delFromSet</literal> has been removed. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Monoid</literal> no longer contains the - <literal>Monoid</literal> - instances for <literal>Map</literal>, - <literal>IntMap</literal>, <literal>Set</literal> and - <literal>IntSet</literal>. They have been moved to their own - modules, as above. The <literal>(a -> a)</literal> instance - has been replaced with a - <literal>Monoid b => Monoid (a -> b)</literal> instance. - The module also now exports - <literal>Dual</literal>, - <literal>Endo</literal>, - <literal>All</literal>, - <literal>Any</literal>, - <literal>Sum</literal> and - <literal>Product</literal> types, and - <literal>Monoid</literal> instances for them. - </para> - </listitem> - <listitem> - <para> - There is a new module <literal>Data.Sequence</literal> - for finite sequences. The <literal>Data.Queue</literal> - module is now deprecated in favour of this faster, more - featureful replacement. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Tree</literal> now has - <literal>Data</literal>, <literal>Typeable</literal>, - <literal>Traversable</literal> and - <literal>Foldable</literal> - instances for the - <literal>Tree</literal> datatype. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Typeable</literal> now uses - <option>-fallow-overlapping-instances</option>, so the - generic instances can be overriden for your own datatypes. - </para> - </listitem> - <listitem> - <para> - <literal>Debug.Trace</literal> now exports - <literal>traceShow</literal>, which is the same as - <literal>trace</literal> except its first argument can be - any showable thing rather than being required to be a - string. - </para> - </listitem> - <listitem> - <para> - <literal>Foreign.C.Types</literal> now also defines - <literal>CIntPtr</literal>, - <literal>CUIntPtr</literal>, - <literal>CIntMax</literal> and - <literal>CUIntMax</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Foreign.ForeignPtr</literal> now exports - <literal>FinalizerEnvPtr</literal>, - <literal>newForeignPtrEnv</literal> and - <literal>addForeignPtrFinalizerEnv</literal>. - Together, these allow the use of finalizers which are passed - an additional environment parameter. - </para> - </listitem> - <listitem> - <para> - <literal>Foreign.Marshal.Utils</literal> no longer exports - the <literal>withObject</literal> function, deprecated since - 5.04; use <literal>with</literal> instead. - </para> - </listitem> - <listitem> - <para> - Foreign.Ptr now also defines - <literal>IntPtr</literal>, - <literal>ptrToIntPtr</literal>, - <literal>intPtrToPtr</literal>, - <literal>WordPtr</literal>, - <literal>ptrToWordPtr</literal> and - <literal>wordPtrToPtr</literal>. - </para> - </listitem> - <listitem> - <para> - There are now <literal>Bounded</literal> instances for up to - 15-tuples (used to be up to 4-tuples). - </para> - </listitem> - <listitem> - <para> - The <literal>Text.Html</literal> and - <literal>Text.Html.BlockTable</literal> modules have now - been removed, with the new <literal>html</literal> and - <literal>xhtml</literal> packages providing replacements. - </para> - </listitem> - <listitem> - <para> - <literal>Text.Read</literal> now exports a function - <literal>parens</literal> which parses a value in an - arbitrary number of parentheses. - </para> - </listitem> - <listitem> - <para> - The <literal>ForeignPtr</literal> datatype has been altered - to make it more efficient. There are also new functions - <literal>mallocPlainForeignPtr</literal> and - <literal>mallocPlainForeignPtrBytes</literal> which - do not allow you to attach a finalizer to the - <literal>ForeignPtr</literal>. - </para> - </listitem> - <listitem> - <para> - The <literal>Text.Regex</literal> and - <literal>Text.Regex.Posix</literal> modules have been removed. - Instead, use the new <literal>regex-compat</literal> package - for a drop-in <literal>Text.Regex</literal> replacement, or - the new library in the new <literal>regex-posix</literal> - package. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Cabal</title> - <itemizedlist> - <listitem> - <para> - Version number 1.1.6 (was 1.1.4). - </para> - </listitem> - <listitem> - <para> - Support for JHC, symmetric to the support for the other - implementations, has been added throughout. - </para> - </listitem> - <listitem> - <para> - Support for object splitting and building in-place - has been added throughout. - </para> - </listitem> - <listitem> - <para> - Added a <filename>debianTemplate</filename> directory with - templates for building Debian packages from Cabal packages. - </para> - </listitem> - <listitem> - <para> - There are now modules - <literal>Distribution.Simple.<replaceable>compiler</replaceable></literal> - for each of <literal>GHC</literal>, <literal>NHC</literal>, - <literal>Hugs</literal> and <literal>JHC</literal>. - The <literal>Distribution.Simple.Build</literal> and - <literal>Distribution.Simple.Install</literal> modules have - shrunk correspondingly. - </para> - </listitem> - <listitem> - <para> - <literal>Distribution.GetOpt</literal> is no longer a - visible module. - </para> - </listitem> - <listitem> - <para> - <literal>Distribution.Simple</literal> exports a function - <literal>defaultMainArgs</literal>, which is identical to - <literal>defaultMain</literal> except that the arguments are - given as a list of strings rather than being retrieved with - <literal>getArgs</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Distribution.Simple.Configure</literal> - no longer exports - <literal>LocalBuildInfo</literal>, - but does now export - <literal>configDependency</literal> and - <literal>configCompilerAux</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Distribution.Simple.LocalBuildInfo</literal> now - exports <literal>mkHaddockDir</literal>, - <literal>distPref</literal>, - <literal>srcPref</literal>, - <literal>autogenModulesDir</literal> and - <literal>mkIncludeDir</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Distribution.PackageDescription</literal> now - exports <literal>haddockName</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Distribution.Simple.Utils</literal> now exports - <literal>copyDirectoryRecursiveVerbose</literal>, - <literal>dirOf</literal>, - <literal>distPref</literal>, - <literal>haddockPref</literal> and - <literal>srcPref</literal>. - It no longer exports <literal>mkGHCiLibName</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>haskell98</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.0). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>parsec</title> - <itemizedlist> - <listitem> - <para> - Version number 2.0 (was 1.0). - </para> - </listitem> - <listitem> - <para> - No other change. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>readline</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.0). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>regex-base</title> - <itemizedlist> - <listitem> - <para> - Version 0.71. - </para> - </listitem> - <listitem> - <para> - New library that provides common functions for different - regex backends. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>regex-compat</title> - <itemizedlist> - <listitem> - <para> - Version 0.71. - </para> - </listitem> - <listitem> - <para> - New package providing a replacement - <literal>Text.Regex</literal> module. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>regex-posix</title> - <itemizedlist> - <listitem> - <para> - Version 0.71. - </para> - </listitem> - <listitem> - <para> - A new package providing POSIX regexes. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>stm</title> - <itemizedlist> - <listitem> - <para> - Version number 2.1 (was 1.0). - </para> - </listitem> - <listitem> - <para> - A new module <literal>Control.Monad.STM</literal> - contains the - <literal>MonadPlus</literal> instance for - <literal>STM</literal> and the function - <literal>check</literal> (both used to be in - <literal>Control.Concurrent.STM</literal>). - It also re-exports - <literal>STM</literal>, - <literal>atomically</literal>, - <literal>retry</literal>, - <literal>orElse</literal> and - <literal>catchSTM</literal>. - </para> - </listitem> - <listitem> - <para> - A new module - <literal>Control.Concurrent.STM.TArray</literal> defines - <literal>TArray</literal>, a transactional array, and makes - it an instance of <literal>MArray</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Control.Concurrent.STM.TChan</literal> now provides - a function <literal>newTChanIO</literal>, which allows - <literal>TChan</literal>s to be created in the IO monad. - Similarly, <literal>Control.Concurrent.STM.TMVar</literal> - provides <literal>newTMVarIO</literal> and - <literal>newEmptyTMVarIO</literal>, and - <literal>Control.Concurrent.STM.TVar</literal> exports - <literal>newTVarIO</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Control.Concurrent.STM.TVar</literal> exports - <literal>registerDelay</literal>. - </para> - </listitem> - <listitem> - <para> - The <literal>Control.Concurrent.STM</literal> module has been - updated to re-export all the new modules. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>template-haskell</title> - <itemizedlist> - <listitem> - <para> - Version number 2.0 (was 1.0). - </para> - </listitem> - <listitem> - <para> - A <literal>Show</literal> instance is now derived for - <literal>Info</literal>, <literal>Fixity</literal> and - <literal>FixityDirection</literal> in - <literal>Language.Haskell.TH.Syntax</literal>. - </para> - </listitem> - <listitem> - <para> - In <literal>Language.Haskell.TH.Syntax</literal>, there is - a type <literal>PkgName</literal> and functions - <literal>mkPkgName</literal> and - <literal>pkgString</literal> - for dealing with package names. - </para> - </listitem> - <listitem> - <para> - The <literal>patGE</literal> function in - <literal>Language.Haskell.TH.Lib</literal> now takes the - final expression separately to the list of statements - rather than splitting it off itself. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>unix</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.0). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Win32</title> - <itemizedlist> - <listitem> - <para> - Version number 2.1 (was 1.0). - </para> - </listitem> - <listitem> - <para> - Now maintained by Esa Ilari Vuokko. - </para> - </listitem> - <listitem> - <para> - There is a new module - <literal>System.Win32.Console</literal> - providing an interface to the Windows Console API. - </para> - </listitem> - <listitem> - <para> - There is a new module - <literal>System.Win32.DebugApi</literal> - providing an interface to the Windows DebugApi. - </para> - </listitem> - <listitem> - <para> - There is a new module - <literal>System.Win32.FileMapping</literal> - for working with memory-mapped files. - </para> - </listitem> - <listitem> - <para> - There is a new module - <literal>System.Win32.SimpleMAPI</literal> - for using the Windows mail API. - </para> - </listitem> - <listitem> - <para> - There is a new module - <literal>System.Win32.Time</literal> - for using the Windows time API. - </para> - </listitem> - <listitem> - <para> - <literal>iNVALID_HANDLE_VALUE</literal> has moved from - <literal>Graphics.Win32.Misc</literal> to - <literal>System.Win32.Types</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>System.Win32.File</literal> has a new - function <literal>getFileInformationByHandle</literal> - and associated data types. - </para> - </listitem> - <listitem> - <para> - <literal>System.Win32.Info</literal> has a new - function <literal>getSystemInfo</literal> and associated - data types. - </para> - </listitem> - <listitem> - <para> - <literal>System.Win32.Process</literal> now has many more - exports. - </para> - </listitem> - <listitem> - <para> - <literal>System.Win32.Types</literal> has new types - <literal>LARGE_INTEGER</literal>, <literal>DDWORD</literal> - and <literal>SIZE_T</literal>. It also has new helper - functions <literal>ddwordToDwords</literal> and - <literal>dwordsToDdword</literal> to split and combine - ddwords into high and low components. - </para> - </listitem> - <listitem> - <para> - <literal>System.Win32</literal> re-exports - <literal>System.Win32.FileMapping</literal>, - <literal>System.Win32.Time</literal> - and <literal>System.Win32.Console</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - </sect2> - - <sect2> - <title>Extra Libraries</title> - <sect3> - <title>ALUT</title> - <itemizedlist> - <listitem> - <para> - Version number 2.0 (was 1.0). - </para> - </listitem> - <listitem> - <para> - <literal>Sound.ALUT.BuiltInSounds</literal> has been removed. - Its <literal>Phase</literal> and <literal>Duration</literal> - exports are now exported by - <literal>Sound.ALUT.Loaders</literal> and its - <literal>helloWorld</literal>, - <literal>sine</literal>, - <literal>square</literal>, - <literal>sawtooth</literal>, - <literal>impulse</literal> and - <literal>whiteNoise</literal> - exports are now constructors of the - <literal>Sound.ALUT.Loaders.SoundDataSource</literal> - datatype. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>arrows</title> - <itemizedlist> - <listitem> - <para> - Version number 0.2 (was 0.1). - </para> - </listitem> - <listitem> - <para> - <literal>Control.Sequence</literal> has been removed in - favour of the new <literal>Control.Applicative</literal> - module in <literal>base</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>cgi</title> - <itemizedlist> - <listitem> - <para> - Version 2006.8.14. - </para> - </listitem> - <listitem> - <para> - <literal>cgi</literal> is a new package, developing on - what used to be <literal>Network.CGI</literal> in the - <literal>network</literal> package. - </para> - </listitem> - <listitem> - <para> - The <literal>Network.CGI.Compat</literal> module provides - a similar interface to the old <literal>Network.CGI</literal> - module, but it uses <literal>Text.XHtml</literal> rather than - <literal>Text.Html</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>fgl</title> - <itemizedlist> - <listitem> - <para> - Version number 5.3 (was 5.2). - </para> - </listitem> - <listitem> - <para> - <literal>Data.Graph.Inductive.Graph</literal> no longer - exports <literal>UContext</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Data.Graph.Inductive.Graph</literal> now exports - <literal>delLEdge</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>GLUT</title> - <itemizedlist> - <listitem> - <para> - Version number remains 2.0. - </para> - </listitem> - <listitem> - <para> - In <literal>Graphics.UI.GLUT.Initialization</literal>, - <literal>DisplayMode</literal> has a new constructor - <literal>WithAuxBuffers</literal> and - <literal>DisplayCapability</literal> has a new constructor - <literal>DisplayAux</literal>. These represent freeglut-only - features. - </para> - </listitem> - <listitem> - <para> - There are new examples in - <filename>BOGLGP/Chapter03/OnYourOwn1.hs</filename>, - <filename>RedBook/AAIndex.hs</filename>, - <filename>RedBook/AARGB.hs</filename>, - <filename>RedBook/AccAnti.hs</filename>, - <filename>RedBook/AccPersp.hs</filename>, - <filename>RedBook/Alpha3D.hs</filename>, - <filename>RedBook/DOF.hs</filename>, - <filename>RedBook/FogIndex.hs</filename>, - <filename>RedBook/Multisamp.hs</filename>, - <filename>RedBook/PointP.hs</filename>, - <filename>RedBook/PolyOff.hs</filename>, - <filename>RedBook/Stencil.hs</filename>, - <filename>RedBook/Stroke.hs</filename> and - <filename>RedBook/Torus.hs</filename>, - and the examples in - <filename>RedBook/Font.hs</filename> and - <filename>RedBook/Histogram.hs</filename> have been - improved. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>haskell-src</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.0). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>HGL</title> - <itemizedlist> - <listitem> - <para> - No change (version 3.1). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>html</title> - <itemizedlist> - <listitem> - <para> - Version 1.0. - </para> - </listitem> - <listitem> - <para> - <literal>html</literal> is a new package, developing on - what used to be <literal>Text.Html</literal> and - <literal>Text.Html.BlockTable</literal> in the - <literal>base</literal> package. - </para> - </listitem> - <listitem> - <para> - <literal>Text.Html.BlockTable</literal> exports a new - function <literal>empty</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>HUnit</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.1). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>mtl</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.0). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>network</title> - <itemizedlist> - <listitem> - <para> - Version number 2.0 (was 1.0). - </para> - </listitem> - <listitem> - <para> - <literal>Network.CGI</literal> has been removed; use the - <literal>cgi</literal> package instead. - </para> - </listitem> - <listitem> - <para> - <literal>Network.BSD</literal> no longer exports - <literal>symlink</literal> or <literal>readlink</literal>; - use - <literal>System.Posix.Files.createSymbolicLink</literal> and - <literal>System.Posix.Files.readSymbolicLink</literal> - instead. - </para> - </listitem> - <listitem> - <para> - <literal>Network.BSD</literal> now exports - <literal>defaultProtocol</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Network.Socket.SocketStatus</literal> now has a - constructor <literal>ConvertedToHandle</literal> for sockets - that have been converted to handles. - </para> - </listitem> - <listitem> - <para> - <literal>Network.Socket.Family</literal> now has the - following additional constructors: - <literal>AF_NETROM</literal>, - <literal>AF_BRIDGE</literal>, - <literal>AF_ATMPVC</literal>, - <literal>AF_ROSE</literal>, - <literal>AF_NETBEUI</literal>, - <literal>AF_SECURITY</literal>, - <literal>AF_PACKET</literal>, - <literal>AF_ASH</literal>, - <literal>AF_ECONET</literal>, - <literal>AF_ATMSVC</literal>, - <literal>AF_IRDA</literal>, - <literal>AF_PPPOX</literal>, - <literal>AF_WANPIPE</literal> and - <literal>AF_BLUETOOTH</literal>. - </para> - </listitem> - <listitem> - <para> - In <literal>Network.URI</literal>, - <literal>parseabsoluteURI</literal> has been deprecated with - a new function <literal>parseAbsoluteURI</literal> taking - its place. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>ObjectIO</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.0). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>OpenAL</title> - <itemizedlist> - <listitem> - <para> - Version number 1.3 (was 1.2). - </para> - </listitem> - <listitem> - <para> - No other change. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>OpenGL</title> - <itemizedlist> - <listitem> - <para> - Version number 2.1 (was 2.0). - </para> - </listitem> - <listitem> - <para> - No other change. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>QuickCheck</title> - <itemizedlist> - <listitem> - <para> - No change (version 1.0). - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>time</title> - <itemizedlist> - <listitem> - <para> - Version 1.0. - </para> - </listitem> - <listitem> - <para> - <literal>time</literal> is a new package, for dealing with - dates, times and time intervals. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>X11</title> - <itemizedlist> - <listitem> - <para> - Version number 1.2 (was 1.1). - </para> - </listitem> - <listitem> - <para> - In <literal>Graphics.X11.Xlib.Types</literal>, - <literal>XGCValues</literal> has been renamed - <literal>GCValues</literal> and - <literal>XSetWindowAttributes</literal> has been renamed - <literal>SetWindowAttributes</literal>. - </para> - </listitem> - <listitem> - <para> - In <literal>Graphics.X11.Xlib.Misc</literal>, - <literal>allocaXSetWindowAttributes</literal> has been - renamed <literal>allocaSetWindowAttributes</literal>. - </para> - </listitem> - <listitem> - <para> - The <literal>FontStruct</literal> type has moved from - <literal>Graphics.X11.Xlib.Types</literal> to - <literal>Graphics.X11.Xlib.Font</literal>. - </para> - </listitem> - <listitem> - <para> - The - <literal>Point</literal>, - <literal>Rectangle</literal>, - <literal>Arc</literal>, - <literal>Segment</literal> and - <literal>Color</literal> types in - <literal>Graphics.X11.Xlib.Types</literal> - are now proper datatypes rather than synonyms for tuples. - They all have a <literal>Storable</literal> instance. - </para> - </listitem> - <listitem> - <para> - The <literal>Byte</literal> and <literal>Short</literal> - types from <literal>Graphics.X11.Xlib.Types</literal> have - been removed. - The following type synonyms, which had already been marked - "Backwards compatibility", have also been removed: - <literal>ListPoint</literal>, - <literal>ListRectangle</literal>, - <literal>ListArc</literal>, - <literal>ListSegment</literal> and - <literal>ListColor</literal>. - </para> - </listitem> - <listitem> - <para> - <literal>Eq</literal>, - <literal>Ord</literal>, - <literal>Show</literal>, - <literal>Typeable</literal> and - <literal>Data</literal> are now derived for: - <literal>XEvent</literal>, - <literal>FdSet</literal> and - <literal>TimeZone</literal> in - <literal>Graphics.X11.Xlib.Event</literal>, - <literal>FontStruct</literal> in - <literal>Graphics.X11.Xlib.Font</literal>, - <literal>XErrorEvent</literal>, - <literal>XComposeStatus</literal> and - <literal>XTextProperty</literal> in - <literal>Graphics.X11.Xlib.Misc</literal>, - <literal>Region</literal> in - <literal>Graphics.X11.Xlib.Region</literal>, - <literal>Display</literal>, - <literal>Screen</literal>, - <literal>Visual</literal>, - <literal>GC</literal>, - <literal>GCValues</literal>, - <literal>SetWindowAttributes</literal>, - <literal>Point</literal>, - <literal>Rectangle</literal>, - <literal>Arc</literal>, - <literal>Segment</literal> and - <literal>Color</literal> in - <literal>Graphics.X11.Xlib.Types</literal>. - </para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>xhtml</title> - <itemizedlist> - <listitem> - <para> - Version 2006.8.14. - </para> - </listitem> - <listitem> - <para> - <literal>xhtml</literal> is a new package, developing on - what used to be <literal>Text.Html</literal> and - <literal>Text.Html.BlockTable</literal> in the - <literal>base</literal> package. - </para> - </listitem> - </itemizedlist> - </sect3> - </sect2> - - <sect2> - <title>GHC As A Library</title> - <para> - Version number 6.6. - </para> - <para> - The internal modules of GHC are now available as a library, package - name <literal>ghc</literal>. - The interface has not been designed with use by other programs - in mind, so expect the API to vary radically in future - releases. - </para> - <para> - An introduction to using the library can be found - <ulink url="http://www.haskell.org/haskellwiki/GHC/As_a_library">on the wiki</ulink>. - </para> - </sect2> - - <sect2> - <title>Internal changes</title> - <itemizedlist> - <listitem> - <para> - GHC development now has its own integrated - <ulink url="http://hackage.haskell.org/trac/ghc">wiki and bug - tracker</ulink>. - </para> - </listitem> - <listitem> - <para> - GHC has now moved to darcs. See - <ulink - url="http://hackage.haskell.org/trac/ghc/wiki/GhcDarcs">the - wiki</ulink> for more details. The sources have moved around a - bit within the tree as a result, most notably the GHC sources - are no longer kept within a <filename>ghc/</filename> - subdirectory. - </para> - </listitem> - <listitem> - <para> - The native code generator is now capable of compiling loops, - which gets us a big step closer to being able to compile - entirely without gcc on well-supported arches. - </para> - </listitem> - </itemizedlist> - </sect2> -</sect1> - |
