summaryrefslogtreecommitdiff
path: root/docs/users_guide/6.6-notes.xml
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2011-07-18 23:11:02 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2011-07-18 23:11:02 +0100
commit5c9dfadd979ca3ccb8dd7c21ddb9fb0fe9cdb3fe (patch)
treeaedac951e211cd35fa93140fbb7640cac555784a /docs/users_guide/6.6-notes.xml
parent72883e48d93528acf44e3ba67c66a66833fe61f3 (diff)
parent8f4f29f655fdda443861152a24588fcaba29b168 (diff)
downloadhaskell-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.xml1718
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
- &quot;Backwards compatibility&quot;, 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>
-