[project @ 1997-03-14 07:52:06 by simonpj]
[ghc-hetmet.git] / ghc / docs / users_guide / 2-02-notes.lit
1 Release~2.02 is the first release of Glasgow Haskell for Haskell~1.4.
2
3 The announcement for this release is distributed as \tr{ANNOUNCE-2.02}
4 in the top-level directory.  It contains very important caveats about
5 2.02, which we do not repeat here!
6
7 Information about ``what's ported to which machine'' is in the
8 Installation Guide.  Since 2.01, we've added support for Windows NT.
9
10 %************************************************************************
11 %*                                                                      *
12 \subsection[2-02-config]{New configuration things in 2.01}
13 %*                                                                      *
14 %************************************************************************
15
16 %************************************************************************
17 %*                                                                      *
18 \subsection[2-02-user-visible]{User-visible changes in 2.01, including incompatibilities}
19 %*                                                                      *
20 %************************************************************************
21
22 GHC~2.01 is a compiler for Haskell~1.4 and, as such, introduces many
23 user-visible changes.  The GHC user's guide has a section to help you
24 upgrade your programs to Haskell~1.4; all user-visible changes
25 are described there (and not repeated here).
26
27 %************************************************************************
28 %*                                                                      *
29 \subsection[2-02-options]{New or changed GHC command-line options}
30 %*                                                                      *
31 %************************************************************************
32
33 \begin{itemize}
34 \item GHC now warns of possibly-incomplete patterns in case expressions
35 and function bindings.  You can suppress these warnings with @-fno-warn-incomplete-patterns@.
36
37 GHC also warns of completely overlapped patterns.  You can't switch this off.
38
39 \item GHC can warn of shadowed names, though it does not do so by default.  
40 Just occasionally this shows up 
41 an otherwise hard-to-find bug.  To warn of shadowed names use @-fwarn-name-shadowing@
42
43 \item For hackers, the flag @-dshow-rn-trace@ shows what the renamer is up to.
44 \end{itemize}
45
46
47 %************************************************************************
48 %*                                                                      *
49 \subsection[2-02-new-in-compiler]{New in the compiler proper}
50 %*                                                                      *
51 %************************************************************************
52
53 \begin{itemize}
54 \item
55 Completely new ``make-world'' system, properly documented (at last) in the
56 installation guide.  No Jmakefiles; but you need Gnu make (gmake).
57
58 \item
59 The ``renamer''---the part of the compiler that implements
60 the Haskell module system---has been completely rewritten, again.
61
62 The format of interface files has changed significantly.  Interface files
63 generated by 2.01 will not work with 2.02.
64
65 \item
66 Even less special pleading for the Prelude than in 2.01.  If you wanted
67 to write your own Prelude and drop it in, you would have
68 a really good chance now.
69 \end{itemize}
70
71
72 %************************************************************************
73 %*                                                                      *
74 \subsection[2-02-new-in-libraries]{In the libraries}
75 %*                                                                      *
76 %************************************************************************
77
78 The libraries have been completely reorganised.  There's a description in
79 ...
80
81
82 %************************************************************************
83 %*                                                                      *
84 \subsection[2-02-new-in-syslibs]{In ``hslibs'' libraries}
85 %*                                                                      *
86 %************************************************************************
87
88
89 %************************************************************************
90 %*                                                                      *
91 \subsection[2-02-new-in-rts]{In the runtime system}
92 %*                                                                      *
93 %************************************************************************
94
95 \begin{itemize}
96 \item @ForeignObjs@ are properly deallocated when execution halts, as well
97 as when the @ForeignObj@ becomes unreferenced.
98 This is important if you are using a @ForeignObj@ to refer to
99 a @COM@ object or other remote resource.  You want that resource to be relased
100 when the program terminates.
101
102 \item Files handles are handled using @ForeignObjs@, and closed when the file handle
103 is unreferenced.  This means that if you
104 open zillions of files then just letting go of the file handle is enough
105 to close it.
106 \end{itemize}
107
108 %************************************************************************
109 %*                                                                      *
110 %\subsection[2-02-new-elsewhere]{Other new stuff}
111 %*                                                                      *
112 %************************************************************************