[project @ 2001-02-20 15:44:26 by simonpj]
[ghc-hetmet.git] / ghc / docs / users_guide / 4-02-notes.sgml
1 <sect1>Release notes for version~4.02---12/98
2 <label id="release-4-02">
3 <p>
4
5 <itemize>
6
7 <item> Full Haskell 98 language support.
8
9 <item> Scoped type variables implemented (see Section <ref
10 name="Scoped Type Variables" id="scoped-type-variables">).
11
12 <item> Several bugs in _ccall_GC and foreign export fixed.
13
14 <item> Warnings for unused variables should work now (they didn't before).
15
16 <item> Simplifier improvements:
17    <itemize>
18         <item> Much better treatment of strict arguments.
19         <item> Function arguments of unlifted type are treated as strict.
20         <item> Better treatment of bottoming Ids.
21         <item> No need for worker/wrapper split for fns that are merely strict.
22         <item> Fewer iterations needed, I hope.
23    </itemize>
24
25 <item> Strictness of primitive operations is now explicit and used by
26 the simplifier.
27
28 <item> Less gratuitous renaming in interface files and abs C.
29
30 <item> <tt/OccName/ is a separate module, and is an abstract data type.
31  
32 <item> A new generational garbage collector: the number of generations
33 is variable, using the -G RTS option (see <ref id="rts-options-gc"
34 name="RTS options to control the garbage-collector">).  This collector
35 is faster and more space-efficient than the two-space collector in 4.01.
36
37 <item> Error messages and warnings are now printed out in the order they
38 occur in the source code.
39
40 <item> <tt/isEmptyMVar/ operation added to the <tt/Concurrent/ library.
41
42 <item> Two new functions exported from <tt/ST/ (and <tt/LazyST/):
43 <tt/unsafeIOToST/ and <tt/stToIO/.
44
45 <item> The <tt/+RTS -H&lt;size&gt;/ option is reinstated.  Now it
46 means "use about this much memory" (see Section <ref
47 id="rts-options-gc" name="RTS options to control the garbage
48 collector">).  This option was added mainly so that 4.02 GC times look
49 good compared to 3.02 :-).
50
51 <item> <tt/finalise/ and <tt/mkWeakNoFinaliser/ operations added to
52 <tt/Weak/ library.
53
54 <item> Ticky-ticky profiling works again (cost-centre profiling is
55 still broken).
56
57 <item> Better <tt/egcs-1.1.1/ support.
58
59 </itemize>