[project @ 2001-04-05 09:10:35 by simonmar]
[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 (February 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>--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>Profiling: please use 
58               <literal>{-# SCC ".." #-}</literal> 
59               rather than <literal>_scc_ "..."</literal>.  The latter
60               will be phased out in due course.</para>
61       </listitem>
62       <listitem>
63         <para>A new experimental optimisation, SpecConstr, is turned
64         on with <literal>-O2</literal>.</para>
65       </listitem>
66       <listitem>
67         <para>Please report bugs using the <ulink
68         url="http://sourceforge.net/projects/ghc/">SourceForge bug
69         tracker</ulink> instead of
70         <email>glasgow-haskell-bugs@haskell.org</email> if
71         possible.</para>
72       </listitem>
73       <listitem>
74         <para>Documentation changes: there's now a useful Flag
75         Reference section, see <xref linkend="flag-reference">.</para>
76       </listitem>
77       <listitem>
78         <para>Many, many, bugfixes.</para>
79       </listitem>
80     </itemizedlist>
81   </sect2>
82
83   <sect2>
84     <title>New experimental features</title>
85
86     <itemizedlist>
87       <listitem>
88         <para>A &ldquo;front panel&rdquo; for GHC-compiled programs
89         displays real-time graphs of memory behaviour in a GTK+
90         window.  You need to recompile the RTS with front panel
91         support to use this.</para>
92       </listitem>
93     </itemizedlist>
94   </sect2>
95
96   <sect2>
97     <title>FFI changes</title>
98     <itemizedlist>
99       <listitem>
100         <para><command>hsc2hs</command> added (<xref linkend="hsc2hs">).</para>
101       </listitem>
102       <listitem>
103         <para>FFI libraries have been updated to the latest proposal
104         from the FFI task force.  Too many changes to list here, see
105         the docs: <xref linkend="sec-Foreign">.</para>
106       </listitem>
107     </itemizedlist>
108   </sect2>
109
110   <sect2>
111     <title>User-visible library changes</title>
112     <itemizedlist>
113       <listitem>
114         <para><function>putMVar</function> now blocks if the
115         <literal>MVar</literal> is already full.  The
116         <literal>PutFullMVar</literal> exception no longer exists.  A
117         non-blocking version of <function>putMVar</function>,
118         <function>tryPutMVar</function>, has been added (<xref
119         linkend="sec-MVars">).</para>
120       </listitem>
121       <listitem>
122         <para>The <literal>Int</literal> and
123         <literal>Integer</literal> types now have instances of
124         <literal>Bits</literal> (<xref linkend="sec-Bits">).</para>
125       </listitem>
126       <listitem>
127         <para>Package <literal>hssource</literal> has been added.  It
128         contains a Haskell 98 abstract syntax, parser, lexer and pretty
129         printer.  No documentation yet.</para>
130       </listitem>
131       <listitem>
132         <para>The methods <literal>fromInt</literal> and
133         <literal>toInt</literal>, which used to be in class
134         <literal>Num</literal> but exported from module
135         <literal>Int</literal>, are no longer in class
136         <literal>Num</literal>.  They're still available from module
137         <literal>Int</literal>, however.</para> 
138
139         <para>In most cases, there should be no benefit from using
140         <literal>fromInt</literal> instead of
141         <literal>fromIntegral</literal>, which is specialised for all
142         integral types.</para>
143       </listitem>
144     </itemizedlist>
145   </sect2>
146
147   <sect2>
148     <title>Build system changes</title>
149     
150     <itemizedlist>
151       <listitem>
152         <para>The <literal>WithGhcHc</literal> setting in
153         <literal>build.mk</literal> has been replaced by the
154         <literal>--with-ghc=<replaceable>ghc</replaceable></literal>
155         option to <literal>configure</literal>.  The new option
156         <emphasis>must</emphasis> be used if you intend to use
157         anything except &ldquo;<literal>ghc</literal>&rdquo; to
158         bootstrap GHC, in order that the build system can figure out
159         what version of GHC you're using.</para>
160       </listitem>
161       <listitem>
162         <para>Source distributions are now made by doing <literal>make
163         distclean</literal> in a build tree, instead of requiring a
164         linked build tree.</para>
165       </listitem>
166     </itemizedlist>
167   </sect2>
168
169   <sect2>
170     <title>Internal changes</title>
171     <itemizedlist>
172       <listitem>
173         <para>Many internal compiler changes: too many to list
174         here.</para>
175       </listitem>
176       <listitem>
177         <para>The old perl driver has been removed and replaced by a
178         driver in the compiler proper.</para>
179       </listitem>
180       <listitem>
181         <para>We now use GMP 3 instead of GMP 2 for
182         arbitrary-precision integer support.</para>
183       </listitem>
184       <listitem>
185         <para>Several libraries rewritten to use the FFI.</para>
186       </listitem>
187     </itemizedlist>
188   </sect2>
189
190 </sect1>
191
192 <!-- Emacs stuff:
193      ;;; Local Variables: ***
194      ;;; mode: sgml ***
195      ;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") ***
196      ;;; End: ***
197  -->