X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=distrib%2FRELEASE;h=3977e1f0f9f742e8ae7ed0aba971255db7b998c4;hb=06b618affc043f92c8c01e00bbe3ff2fb8fdf6e0;hp=4653a81b6dfaf52b3ed4e911e574f3ef12d44c59;hpb=74bdbedb054eb487c4a68f892bed8b041f232ca3;p=ghc-hetmet.git diff --git a/distrib/RELEASE b/distrib/RELEASE index 4653a81..3977e1f 100644 --- a/distrib/RELEASE +++ b/distrib/RELEASE @@ -1 +1,161 @@ -ToDo +This is the pre-mangled text of the 2.02-specific part of the +GHC release notes. + +====================================================================== +Release~2.02 is the first release of Glasgow Haskell for Haskell~1.4. + +The announcement for this release is distributed as \tr{ANNOUNCE-2.02} +in the top-level directory. It contains very important caveats about +2.02, which we do not repeat here! + +Information about ``what's ported to which machine'' is in the +Installation Guide. Since 2.01, we've added support for Win32 +(Windows NT and Windows 95). + +%************************************************************************ +%* * +\subsection[2-02-config]{New configuration things in 2.02} +%* * +%************************************************************************ + +%************************************************************************ +%* * +\subsection[2-02-user-visible]{User-visible changes in 2.02, including incompatibilities} +%* * +%************************************************************************ + +GHC~2.02 is a compiler for Haskell~1.4 and, as such, introduces a +bunch of user-visible changes. The GHC user's guide has a section to +help you upgrade your programs to Haskell~1.4 from 1.2; all +user-visible changes are described there (and not repeated here). + +%************************************************************************ +%* * +\subsection[2-02-options]{New or changed GHC command-line options} +%* * +%************************************************************************ + +\begin{itemize} +\item GHC now warns of possibly-incomplete patterns in case expressions +and function bindings. You can suppress these warnings with @-fno-warn-incomplete-patterns@. + +GHC also warns of completely overlapped patterns. You can't switch this off. + +\item GHC can warn of shadowed names, though it does not do so by default. +Just occasionally this shows up +an otherwise hard-to-find bug. To warn of shadowed names use @-fwarn-name-shadowing@ + +\item You can now generate `make' dependencies via the compiler +driver, use the option @-M@ together with the list source files to compute +the dependencies for. By default, the dependencies will be appended to +the file \tr{Makefile} in the current directory. + +\item For hackers, the flag @-dshow-rn-trace@ shows what the renamer is up to. +Sit back and marvel. + +\end{itemize} + + +%************************************************************************ +%* * +\subsection[2-02-new-in-compiler]{New in the compiler proper} +%* * +%************************************************************************ + +\begin{itemize} +\item +Completely new ``make-world'' system, properly documented (at last) in the +installation guide. No Jmakefiles; but you *need* Gnu make +(gmake). The more recent the better (v 3.70+). + +\item +The ``renamer''---the part of the compiler that implements +the Haskell module system---has been completely rewritten, again. + +The format of interface files has changed significantly. Interface files +generated by 2.01 will not work with 2.02. + +\item +Even less special pleading for the Prelude than in 2.01. If you wanted +to write your own Prelude and drop it in, you would have +a really good chance now. +\end{itemize} + + +%************************************************************************ +%* * +\subsection[2-02-new-in-libraries]{In the libraries} +%* * +%************************************************************************ + +The libraries have been completely reorganised. There's a description in +\sectionref{syslibs}. + + +%************************************************************************ +%* * +\subsection[2-02-new-in-syslibs]{In ``hslibs'' libraries} +%* * +%************************************************************************ + + +%************************************************************************ +%* * +\subsection[2-02-new-in-rts]{In the runtime system} +%* * +%************************************************************************ + +\begin{itemize} +\item @ForeignObjs@ are properly deallocated when execution halts, as well +as when the garbage collector spots the @ForeignObj@ as being unreferenced. +This is important if you are using a @ForeignObj@ to refer to +a @COM@ object or other remote resource. You want that resource to be relased +when the program terminates. + +\item Files handles in the IO prelude are implemented using +@ForeignObjs@, and closed when the file handle is unreferenced. This +means that if you open zillions of files then just letting go of the +file handle is enough to close it. +\end{itemize} + +%************************************************************************ +%* * +\subsection[2-02-new-elsewhere]{Other new stuff} +%* * +%************************************************************************ + +2.02 is released together with Green Card, a foreign-language +interface generator for Haskell. More details elsewhere... + + +%************************************************************************ +%* * +\subsection[2-02-troublespots]{Known troublespots} +%* * +%************************************************************************ + +The 2.02 compiler has the following known deficiencies: + +\begin{description} +\item[native code generator, x86:] + +The native code generator for x86 platforms is by default switched +off, as the code the compiler produces with it enabled was discovered +just before releaseing to be wonky. Rather than delay the release +further, GHC on x86 platforms rely on \tr{GCC} as their +backend for now. Hopefully fixed soon. + +\item[Simplifier looping:] + +The simplifier(Glasgow-speak for optimiser) has been observed to get +into a loop in one or two cases. If you should observe this, please +report it as a bug - the work around is to turn off optimisation. + +\item[Undefined @*_vap_info@ symbols:] + +If the linker complains about some undefined @*_vap_info@ symbols when +linking 2.02 compiled programs (very unlikely) - fix this by compiling +the module where the references are coming from with +@-fno-lambda-lifting@. + +\end{description}