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