summaryrefslogtreecommitdiff
path: root/docs/users_guide/5-00-notes.xml
blob: 28712472c665e4aec18dae0679c2ca6e8aa026fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<?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="sec-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="sec-MVars">).</para>
      </listitem>
      <listitem>
	<para>The <literal>Int</literal> and
        <literal>Integer</literal> types now have instances of
        <literal>Bits</literal> (<xref linkend="sec-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="sec-DiffArray">),
	StorableArray (<xref linkend="sec-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: ***
 -->