Commit f45b6f5e authored by Ian Lynagh's avatar Ian Lynagh
Browse files

Remove old, unused release notes

parent c24c65f5
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-5-00">
<title>Release notes for version 5.00 (April 2001)</title>
<sect2>
<title>User-visible compiler changes</title>
<itemizedlist>
<listitem>
<para>GHCi, the new interactive environment on top of GHC, has
been added (<xref linkend="ghci">).</para>
</listitem>
<listitem>
<para>New <option>&ndash;&ndash;make</option> flag added (<xref
linkend="make-mode">).</para>
</listitem>
<listitem>
<para>The native code generator now supports Sparc in addition
to x86.</para>
</listitem>
<listitem>
<para>We now make it clear which options can be placed in an
OPTIONS pragma. See <xref
linkend="static-dynamic-flags">.</para>
</listitem>
<listitem>
<para><option>-fglasgow-exts</option> no longer implies
<option>-package lang</option>.</para>
</listitem>
<listitem>
<para><option>-noC</option> is no more.</para>
</listitem>
<listitem>
<para><option>-hi</option> and <option>-nohi</option> are no more.</para>
</listitem>
<listitem>
<para>The concept of &ldquo;packages&rdquo; has been
generalised and extended. Packages may be installed or
removed from an existing GHC installation using the new
<command>ghc-pkg</command> tool. See <xref
linkend="packages">.</para>
</listitem>
<listitem>
<para>Initial unicode support: the <literal>Char</literal>
type is now 31 bits. We don't yet have support for unicode
I/O.</para>
</listitem>
<listitem>
<para><option>-v</option> now takes an optional numeric
argument indicating the level of verbosity (<xref
linkend="options-help">). <option>-dshow-passes</option> has
been removed.</para>
</listitem>
<listitem>
<para>Parallel list comprehensions added. See <xref
linkend="parallel-list-comprehensions">.</para>
</listitem>
<listitem>
<para>Functional dependencies are now fully implemented.
</para>
</listitem>
<listitem>
<para>Profiling: please use
<literal>{-# SCC ".." #-}</literal>
rather than <literal>_scc_ "..."</literal>. The latter
will be phased out in due course.</para>
</listitem>
<listitem>
<para>A new experimental optimisation, SpecConstr, is turned
on with <literal>-O2</literal>.</para>
</listitem>
<listitem>
<para>Please report bugs using the <ulink
url="http://sourceforge.net/projects/ghc/">SourceForge bug
tracker</ulink> instead of
<email>glasgow-haskell-bugs@haskell.org</email> if
possible.</para>
</listitem>
<listitem>
<para>Documentation changes: there's now a useful Flag
Reference section, see <xref linkend="flag-reference">.</para>
</listitem>
<listitem>
<para>Many, many, bugfixes.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>New experimental features</title>
<itemizedlist>
<listitem>
<para>A &ldquo;front panel&rdquo; for GHC-compiled programs
displays real-time graphs of memory behaviour in a GTK+
window. You need to recompile the RTS with front panel
support to use this.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>FFI changes</title>
<itemizedlist>
<listitem>
<para><command>hsc2hs</command> added (<xref linkend="hsc2hs">).</para>
</listitem>
<listitem>
<para>FFI libraries have been updated to the latest proposal
from the FFI task force. Too many changes to list here, see
the docs: <xref linkend="Foreign">.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>User-visible library changes</title>
<itemizedlist>
<listitem>
<para><function>putMVar</function> now blocks if the
<literal>MVar</literal> is already full. The
<literal>PutFullMVar</literal> exception no longer exists.
A non-blocking version of <function>putMVar</function>,
<function>tryPutMVar</function>, has been added (<xref
linkend="MVars">).</para>
</listitem>
<listitem>
<para>The <literal>Int</literal> and
<literal>Integer</literal> types now have instances of
<literal>Bits</literal> (<xref linkend="Bits">).</para>
</listitem>
<listitem>
<para>Package <literal>hssource</literal> has been added. It
contains a Haskell 98 abstract syntax, parser, lexer and pretty
printer. No documentation yet.</para>
</listitem>
<listitem>
<para>The methods <literal>fromInt</literal> and
<literal>toInt</literal>, which used to be in class
<literal>Num</literal> but exported from module
<literal>Int</literal>, are no longer in class
<literal>Num</literal>. They're still available from module
<literal>Int</literal>, however.</para>
<para>In most cases, there should be no benefit from using
<literal>fromInt</literal> instead of
<literal>fromIntegral</literal>, which is specialised for all
integral types.</para>
</listitem>
<listitem>
<para>New modules: DiffArray (<xref linkend="DiffArray">),
StorableArray (<xref linkend="StorableArray">),
MonadList, MonadCont (no documentation yet).</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Build system changes</title>
<itemizedlist>
<listitem>
<para>The <literal>WithGhcHc</literal> setting in
<literal>build.mk</literal> has been replaced by the
<literal>&ndash;&ndash;with-ghc=<replaceable>ghc</replaceable></literal>
option to <literal>configure</literal>. The new option
<emphasis>must</emphasis> be used if you intend to use
anything except &ldquo;<literal>ghc</literal>&rdquo; to
bootstrap GHC, in order that the build system can figure out
what version of GHC you're using.</para>
</listitem>
<listitem>
<para>Source distributions are now made by doing <literal>make
distclean</literal> in a build tree, instead of requiring a
linked build tree.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Internal changes</title>
<itemizedlist>
<listitem>
<para>Many internal compiler changes: too many to list
here.</para>
</listitem>
<listitem>
<para>The old perl driver has been removed and replaced by a
driver in the compiler proper.</para>
</listitem>
<listitem>
<para>We now use GMP 3 instead of GMP 2 for
arbitrary-precision integer support.</para>
</listitem>
<listitem>
<para>Several libraries rewritten to use the FFI.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<!-- Emacs stuff:
;;; Local Variables: ***
;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: ***
-->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-5-04">
<title>Release notes for version 5.04</title>
<sect2>
<title>User-visible compiler changes</title>
<itemizedlist>
<listitem>
<para></para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>User-visible interpreter (GHCi) changes</title>
<itemizedlist>
<listitem>
<para></para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>User-visible library changes</title>
<itemizedlist>
<listitem>
<para></para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>New experimental features</title>
<itemizedlist>
<listitem>
<para></para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Internal changes</title>
<itemizedlist>
<listitem>
<para></para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<!-- Emacs stuff:
;;; Local Variables: ***
;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: ***
-->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-5-04">
<title>Release notes for version 5.04</title>
<sect2>
<title>User-visible compiler changes</title>
<itemizedlist>
<listitem>
<para>Full support for MacOS X, including fully optimized compilation, has been added. Only a native
code generator and support for <option>-split-objs</option> is still missing.
Everything else needs more testing, but should work.</para>
</listitem>
<listitem>
<para><literal>ghc-pkg</literal>: new options
<option>--auto-ghci-libs</option>,
<option>-u</option>/<option>--update-package</option>,
<option>--force</option>, and
<option>-i</option>/<option>--input-file</option>, and
suppport for expanding environment variables in package
descriptions. See <xref linkend="packages">).</para>
</listitem>
<listitem>
<para>The latest version of the FFI spec is fully supported.
The syntax of FFI declarations has changed accordingly. The
old syntax is still accepted for the time being, but will
elicit a warning from the compiler.</para>
</listitem>
<listitem>
<para>New option: <option>-F</option> specifies a user-defined
preprocessing phase (see <xref linkend="pre-processor">).</para>
</listitem>
<listitem>
<para>Major overhaul of the heap profiling subsystem, with new
facilities for retainer profiling and biographical profiling
(ala nhc98, albeit with a couple of omissions). The syntax of
the runtime heap-profiling options has changed. See <xref
linkend="prof-heap">.</para>
</listitem>
<listitem>
<para>The type system now supports full rank-N types
(previously only limited rank-2 types were supported). See
<xref linkend="universal-quantification">.</para>
</listitem>
<listitem>
<para>Explicit kind annotations can now be given on any
binding occurrence of a type variable. See <xref
linkend="kinding">.</para>
</listitem>
<listitem>
<para>The handling of type synonyms has been rationalised.
See <xref linkend="type-synonyms">.</para>
</listitem>
<listitem>
<para>Fixes for several space leaks in the compiler itself
(these fixes were also merged into 5.02.3).</para>
</listitem>
<listitem>
<para>It is now possible to derive arbitrary classes for
newtypes. See <xref linkend="newtype-deriving">.</para>
</listitem>
<listitem>
<para>Deadlock is now an exception, rather than a return
status from the scheduler. See the module
<literal>Control.Exception</literal> in the library
documentation for more details.</para>
</listitem>
<listitem>
<para>The syntax and behaviour of <literal>RULE</literal>
pragmas has changed slightly. See <xref
linkend="rewrite-rules">.</para>
</listitem>
<listitem>
<para>Interface files are now in a binary format to reduce
compilation times. To view an interface file in plain text,
use the <option>--show-iface</option> flag.</para>
</listitem>
<listitem>
<para>A restriction on the form of class declarations has been
lifted. In Haskell 98, it is illegal for class method types
to mention constraints on the class type variable. eg.</para>
<programlisting>
class Seq s a where
elem :: Eq a => a -> s a -> Bool
</programlisting>
<para>This restriction has now been lifted in GHC.</para>
</listitem>
<listitem>
<para>Main threads can now receive the
<literal>BlockedOnDeadMVar</literal> exception in the same way
as other threads.</para>
</listitem>
<listitem>
<para>The <option>-fall-strict</option> flag never really
worked, and has been removed.</para>
</listitem>
<listitem>
<para>The syntax of <literal>.hi-boot</literal> files is now
much clearer and Haskell-like. See <xref
linkend="mutual-recursion">.</para>
</listitem>
<listitem>
<para>There is a new flag <option>-fffi</option> which enables
FFI support without turning on the rest of the GHC
extensions.</para>
</listitem>
<listitem>
<para>The syntax for implicit parameter bindings has changed.
Previously the keyword <literal>with</literal> was used to
introduce implicit bindings, but now implicit bindings may be
introduced using <literal>let</literal> (see <xref
linkend="implicit-parameters">). As a result of this,
<literal>with</literal> is no longer a keyword when
<option>-fglasgow-exts</option> is turned on.</para>
<para>The option <literal>-fwith</literal> may be used to
restore the old behaviour.</para>
</listitem>
<listitem>
<para>Infix type constructors are now allowed, and must begin
with a colon (as with data constructors). See <xref
linkend="infix-tycons">.</para>
</listitem>
<listitem>
<para>The <literal>do</literal>-notation syntax is now
rebindable in the same way as other built-in syntax. See
<xref linkend="rebindable-syntax">.</para>
</listitem>
<listitem>
<para>Support for using &ldquo;frameworks&rdquo; on
Darwin/MacOS X has been added. See the
<option>-framework</option> option in <xref
linkend="options-linker">, and the
<literal>framework_dirs</literal> field of a package spec in
<xref linkend="package-management">.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>User-visible interpreter (GHCi) changes</title>
<itemizedlist>
<listitem>
<para>New commands: <literal>:browse</literal>, <literal>:set
args</literal>, <literal>:set prog</literal>, <literal>:show
bindings</literal>, and <literal>:show modules</literal> (see
<xref linkend="ghci-commands">).</para>
</listitem>
<listitem>
<para>There is a much more flexible mechanism for manipulating
the scope for expressions typed at the prompt. For example,
one can now have both the <literal>Prelude</literal> and the
exports of several compiled modules in scope at the same
time. See <xref linkend="ghci-scope">.</para>
</listitem>
<listitem>
<para>GHCi now supports <literal>foreign import
"wrapper"</literal> FFI declarations.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>User-visible library changes</title>
<itemizedlist>
<listitem>
<para>GHC is in the process of moving to a new hierarchical
set of libraries. At the moment, we have two sets of
libraries, both described in accompanying documents:</para>
<itemizedlist>
<listitem>
<para>The &ldquo;new libraries&rdquo; which are
hierarchical and consist of the following packages:
<literal>base</literal>, <literal>haskell98</literal>,
<literal>haskell-src</literal>, and
<literal>network</literal>. Broadly speaking,
<literal>base</literal> contains the
<literal>Prelude</literal>, standard libraries and most of
the contents of the old <literal>lang</literal>
package. By default, the <literal>base</literal> and
<literal>haskell98</literal> packages are enabled.</para>
</listitem>
<listitem>
<para>The <literal>hslibs</literal>, most of which are now
deprecated. Where possible, new code should be written to
use the new libraries instead. </para>
<para>The following libraries in <literal>hslibs</literal>
have not moved yet:</para>
<itemizedlist>
<listitem>
<para>The packages <literal>win32</literal>,
<literal>xlib</literal>, <literal>graphics</literal>,
and <literal>posix</literal>.</para>
</listitem>
<listitem>
<para>The Edison libraries in the
<literal>data</literal> package.</para>
</listitem>
<listitem>
<para>In the <literal>lang</literal> package, the
modules <literal>TimeExts</literal>,
<literal>DirectoryExts</literal>,
<literal>SystemExts</literal>, and
<literal>NumExts</literal>.</para>
</listitem>
<listitem>
<para>The HaXml libraries in the
<literal>text</literal> package.</para>
</listitem>
<listitem>
<para>In the <literal>util</literal> package, the
modules <literal>MD5</literal>,
<literal>Select</literal>, <literal>Memo</literal>,
<literal>Observe</literal>, and
<literal>Readline</literal>.</para>
</listitem>
</itemizedlist>
<para>All other libraries from <literal>hslibs</literal>
either have equivalents in the new libraries (see the
<literal>hslibs</literal> docs for details), or were
already deprecated and hence were not moved into the new
hierarchy.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>The <literal>Read</literal> class is now based on a
parsing combinator library which is vastly more efficient than
the previous one. See the modules
<literal>Text.Read</literal>.
<literal>Text.ParserCombinators.ReadP</literal>, and
<literal>Text.ParserCombinators.ReadPrec</literal> in the
library documentation.</para>
<para>The code generated by the compiler for derived
<literal>Read</literal> instances should be much shorter than
before.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>New experimental features</title>
<itemizedlist>
<listitem>
<para>Linear implicit parameters. See <xref
linkend="linear-implicit-parameters">.</para>
</listitem>
<listitem>
<para>The RTS has support for running in a multi-threaded
environment and making non-blocking (from Haskell's point of
view) calls to foreign C functions which would normally block.
To enable this behaviour, configure with the
<option>--enable-threaded-rts</option> option.</para>
</listitem>
<listitem>
<para>The compiler can now read in files containing Core
syntax (such as those produced by the
<option>-fext-core</option> option) and compile them. Input
files with the <literal>.hcr</literal> file extension are
assumed to contain Core syntax.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Internal changes</title>
<itemizedlist>
<listitem>
<para>Happy 1.13 is now required to build GHC, because of the
change in names of certain libraries.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<!-- Emacs stuff:
;;; Local Variables: ***
;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: ***
-->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-6-0">
<title>Release notes for version 6.0</title>
<sect2>
<title>User-visible compiler changes</title>
<itemizedlist>
<listitem>
<para>Template Haskell, a new feature for compile-time
metaprogramming has been introduced. See <xref
linkend="template-haskell"/>.</para>
</listitem>
<listitem>
<para>INLINE pragmas on methods in class or instance
declarations now work properly.</para>
</listitem>
<listitem>
<para>Recursive do-notation (aka <literal>mdo</literal>) is
now supported. See <xref linkend="mdo-notation"/>.</para>
</listitem>
<listitem>
<para>There is now a native code generator for PowerPC
platforms.</para>
</listitem>
<listitem>
<para>Profiling: the <option>-xt</option> RTS option enables
inclusion of thread stacks in a heap profile. See <xref
linkend="rts-options-heap-prof"/>.</para>
</listitem>
<listitem>
<para>Non-blocking I/O is now supported on Windows.</para>
</listitem>
<listitem>
<para>The <ulink url="../libraries/base/Data.Dynamic.html#Typeable"><literal>Typeable</literal></ulink> class can now be
derived, and the implementation of <literal>Typeable</literal>
is now more efficient.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>User-visible interpreter (GHCi) changes</title>
<itemizedlist>
<listitem>
<para>Loading a <literal>Main</literal> module that does not
define <literal>main</literal> is no longer an error, although
GHCi will still emit a warning in this case.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>User-visible library changes</title>
<itemizedlist>
<listitem>
<para>Hierarchical libraries are now available without needing
to specify an explicit <option>-package</option> flag. There
are some exceptions to this rule (see <xref
linkend="using-packages"/>), but if you stick to GHCi and
<option>--make</option> mode then there will normally be no
need to specify <option>-package</option> options at
all.</para>
<para>Non-hierarchical libraries
(i.e. <literal>hslibs</literal> libraries) still need to be
explicitly requested with <option>-package</option>
options.</para>
</listitem>
<listitem>
<para>The <literal>Posix</literal> library has been rewritten.
It is now a hierarchical library rooted at
<literal>System.Posix</literal>, and has some additions aimed
at supporting the latest revision of the POSIX standard (IEEE
Std 1003.1-2001). See the <ulink
url="../libraries/unix/index.html"><literal>unix</literal>
package</ulink> for details.</para>
<para>The old <literal>posix</literal> package is still