[project @ 2004-08-15 20:32:47 by panne]
[ghc-hetmet.git] / ghc / docs / users_guide / 5-00-notes.sgml
1 <sect1 id="release-5-00">
2   <title>Release notes for version 5.00 (April 2001)</title>
3
4   <sect2>
5     <title>User-visible compiler changes</title>
6     <itemizedlist>
7       <listitem>
8         <para>GHCi, the new interactive environment on top of GHC, has
9         been added (<xref linkend="ghci">).</para>
10       </listitem>
11       <listitem>
12         <para>New <option>&ndash;&ndash;make</option> flag added (<xref
13         linkend="make-mode">).</para>
14       </listitem>
15       <listitem>
16         <para>The native code generator now supports Sparc in addition
17         to x86.</para>
18       </listitem>
19       <listitem>
20         <para>We now make it clear which options can be placed in an
21         OPTIONS pragma.  See <xref
22         linkend="static-dynamic-flags">.</para>
23       </listitem>
24       <listitem>
25         <para><option>-fglasgow-exts</option> no longer implies
26         <option>-package lang</option>.</para>
27       </listitem>
28       <listitem>
29         <para><option>-noC</option> is no more.</para>
30       </listitem>
31       <listitem>
32         <para><option>-hi</option> and <option>-nohi</option> are no more.</para>
33       </listitem>
34       <listitem>
35         <para>The concept of &ldquo;packages&rdquo; has been
36         generalised and extended.  Packages may be installed or
37         removed from an existing GHC installation using the new
38         <command>ghc-pkg</command> tool.  See <xref
39         linkend="packages">.</para>
40       </listitem>
41       <listitem>
42         <para>Initial unicode support: the <literal>Char</literal>
43         type is now 31 bits.  We don't yet have support for unicode
44         I/O.</para>
45       </listitem>
46       <listitem>
47         <para><option>-v</option> now takes an optional numeric
48         argument indicating the level of verbosity (<xref
49         linkend="options-help">).  <option>-dshow-passes</option> has
50         been removed.</para>
51       </listitem>
52       <listitem>
53         <para>Parallel list comprehensions added.  See <xref
54         linkend="parallel-list-comprehensions">.</para>
55       </listitem>
56       <listitem>
57         <para>Functional dependencies are now fully implemented.
58         </para>
59       </listitem>
60       <listitem>
61         <para>Profiling: please use 
62               <literal>{-# SCC ".." #-}</literal> 
63               rather than <literal>_scc_ "..."</literal>.  The latter
64               will be phased out in due course.</para>
65       </listitem>
66       <listitem>
67         <para>A new experimental optimisation, SpecConstr, is turned
68         on with <literal>-O2</literal>.</para>
69       </listitem>
70       <listitem>
71         <para>Please report bugs using the <ulink
72         url="http://sourceforge.net/projects/ghc/">SourceForge bug
73         tracker</ulink> instead of
74         <email>glasgow-haskell-bugs@haskell.org</email> if
75         possible.</para>
76       </listitem>
77       <listitem>
78         <para>Documentation changes: there's now a useful Flag
79         Reference section, see <xref linkend="flag-reference">.</para>
80       </listitem>
81       <listitem>
82         <para>Many, many, bugfixes.</para>
83       </listitem>
84     </itemizedlist>
85   </sect2>
86
87   <sect2>
88     <title>New experimental features</title>
89
90     <itemizedlist>
91       <listitem>
92         <para>A &ldquo;front panel&rdquo; for GHC-compiled programs
93         displays real-time graphs of memory behaviour in a GTK+
94         window.  You need to recompile the RTS with front panel
95         support to use this.</para>
96       </listitem>
97     </itemizedlist>
98   </sect2>
99
100   <sect2>
101     <title>FFI changes</title>
102     <itemizedlist>
103       <listitem>
104         <para><command>hsc2hs</command> added (<xref linkend="hsc2hs">).</para>
105       </listitem>
106       <listitem>
107         <para>FFI libraries have been updated to the latest proposal
108         from the FFI task force.  Too many changes to list here, see
109         the docs: <xref linkend="sec-Foreign">.</para>
110       </listitem>
111     </itemizedlist>
112   </sect2>
113
114   <sect2>
115     <title>User-visible library changes</title>
116     <itemizedlist>
117       <listitem>
118         <para><function>putMVar</function> now blocks if the
119         <literal>MVar</literal> is already full.  The
120         <literal>PutFullMVar</literal> exception no longer exists.
121         A non-blocking version of <function>putMVar</function>,
122         <function>tryPutMVar</function>, has been added (<xref
123         linkend="sec-MVars">).</para>
124       </listitem>
125       <listitem>
126         <para>The <literal>Int</literal> and
127         <literal>Integer</literal> types now have instances of
128         <literal>Bits</literal> (<xref linkend="sec-Bits">).</para>
129       </listitem>
130       <listitem>
131         <para>Package <literal>hssource</literal> has been added.  It
132         contains a Haskell 98 abstract syntax, parser, lexer and pretty
133         printer.  No documentation yet.</para>
134       </listitem>
135       <listitem>
136         <para>The methods <literal>fromInt</literal> and
137         <literal>toInt</literal>, which used to be in class
138         <literal>Num</literal> but exported from module
139         <literal>Int</literal>, are no longer in class
140         <literal>Num</literal>.  They're still available from module
141         <literal>Int</literal>, however.</para> 
142
143         <para>In most cases, there should be no benefit from using
144         <literal>fromInt</literal> instead of
145         <literal>fromIntegral</literal>, which is specialised for all
146         integral types.</para>
147       </listitem>
148       <listitem>
149         <para>New modules: DiffArray (<xref linkend="sec-DiffArray">),
150         StorableArray (<xref linkend="sec-StorableArray">),
151         MonadList, MonadCont (no documentation yet).</para>
152       </listitem>
153     </itemizedlist>
154   </sect2>
155
156   <sect2>
157     <title>Build system changes</title>
158     
159     <itemizedlist>
160       <listitem>
161         <para>The <literal>WithGhcHc</literal> setting in
162         <literal>build.mk</literal> has been replaced by the
163         <literal>&ndash;&ndash;with-ghc=<replaceable>ghc</replaceable></literal>
164         option to <literal>configure</literal>.  The new option
165         <emphasis>must</emphasis> be used if you intend to use
166         anything except &ldquo;<literal>ghc</literal>&rdquo; to
167         bootstrap GHC, in order that the build system can figure out
168         what version of GHC you're using.</para>
169       </listitem>
170       <listitem>
171         <para>Source distributions are now made by doing <literal>make
172         distclean</literal> in a build tree, instead of requiring a
173         linked build tree.</para>
174       </listitem>
175     </itemizedlist>
176   </sect2>
177
178   <sect2>
179     <title>Internal changes</title>
180     <itemizedlist>
181       <listitem>
182         <para>Many internal compiler changes: too many to list
183         here.</para>
184       </listitem>
185       <listitem>
186         <para>The old perl driver has been removed and replaced by a
187         driver in the compiler proper.</para>
188       </listitem>
189       <listitem>
190         <para>We now use GMP 3 instead of GMP 2 for
191         arbitrary-precision integer support.</para>
192       </listitem>
193       <listitem>
194         <para>Several libraries rewritten to use the FFI.</para>
195       </listitem>
196     </itemizedlist>
197   </sect2>
198
199 </sect1>
200
201 <!-- Emacs stuff:
202      ;;; Local Variables: ***
203      ;;; mode: sgml ***
204      ;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") ***
205      ;;; End: ***
206  -->