-<sect1>Release notes for version~3-01---2/97
+<sect1>Release notes for version~3-01---2/98
<label id="release-3-01">
<p>
<itemize>
-<item> Fix interaction of "hiding" on import with "module M" on export.
+<item> Fix interaction of "hiding" on import with "module M" on export.
-<item> Fix some floating point conversion problems in @floatExtreme.lc@.
+<item> Fix some floating point conversion problems in @floatExtreme.lc@.
+
+<item> New Hugs/GHC interface <tt/NumExts/ added and documented.
+
+<item> moved @showOct@ and @showHex@ from @Numeric@ to @NumExts@.
+
+<item> imported HBC's quick-sort algorithm from @QSort@ into @List@.
+
+<item> added support for assertions. Conceptually, a new function has
+ been added to the Prelude with the following type:
+
+ <tscreen> <verb>
+ assert :: Bool -> a -> a
+ </verb> </tscreen>
+
+ which has the following behaviour:
+
+ <tscreen> <verb>
+ assert pred v
+ | pred = v
+ | otherwise = error "assertion failed"
+ </verb> </tscreen>
+
+ However in this form, the practical use of assertions is
+ limited as no indication is given as to what assertion failed.
+ So to help out here, ghc will rewrite any uses of <tt/assert/
+ to instead invoke the function <tt/assert__/ :
+
+ <tscreen> <verb>
+ assert__ :: String -> Bool -> a -> a
+ </verb> </tscreen>
+
+ where the first argument to <tt/assert__/ is a compiler generated string
+ which encodes the source location of the original <tt/assert/.
+
+ Assertions are a Glasgow extension, so -fglasgow-exts is
+ needed to use them.
+
+<item>
+ Split @-fwarn-unused-names@ into
+
+ <descrip>
+ <tag>@-fwarn-unused-imports@</tag>
+ Warn about unused explicit imports. (in -W)
+ <tag>@-fwarn-unused-binds@</tag>
+ Warn about unused bindings (in -W)
+ <tag>@-fwarn-unused-matches@</tag>
+ Warn about unused names in pattern matches
+ (not as useful, relegated to -Wall)
+ </descrip>
+
+<item> The driver is now always installed as @ghc-<version>@ with a
+link to it from @ghc@.
+
+<item> Library re-organisation: all libraries now live under ghc/lib,
+which has the following structure:
+
+<tscreen> <verb>
+ ghc/lib/std -- all prelude files (libHS.a)
+ ghc/lib/std/cbits
+
+ ghc/lib/exts -- standard Hugs/GHC extensions (libHSexts.a)
+ -- available with '-fglasgow-exts'
+
+ ghc/lib/posix -- POSIX library (libHSposix.a)
+ ghc/lib/posix/cbits -- available with '-syslib posix'
+
+ ghc/lib/misc -- used to be hslibs/ghc (libHSmisc.a)
+ ghc/lib/misc/cbits -- available with '-syslib misc'
+
+ ghc/lib/concurrent -- Concurrent libraries (libHSconc.a)
+ -- available with '-concurrent'
+</verb> </tscreen>
+
+Also, several non-standard prelude modules had their names changed to begin
+with 'Prel' to reduce namespace pollution.
+
+<tscreen> <verb>
+ Addr ==> PrelAddr (Addr interface available in 'exts')
+ ArrBase ==> PrelArr
+ CCall ==> PrelCCall (CCall interface available in 'exts')
+ ConcBase ==> PrelConc
+ GHCerr ==> PrelErr
+ Foreign ==> PrelForeign (Foreign interface available in 'exts')
+ GHC ==> PrelGHC
+ IOHandle ==> PrelHandle
+ IOBase ==> PrelIOBase
+ GHCmain ==> PrelMain
+ STBase ==> PrelST
+ Unsafe ==> PrelUnsafe
+ UnsafeST ==> PrelUnsafeST
+</verb> </tscreen>
+
+<item> Unboxed types are now not allowed in the field of a newtype
+constructor.
+
+<item> Report the context properly for type errors in newtype
+declarations.
+
+<item> User's Guide replaced with SGML version.
+
+<item> The literate tools have been removed from the standard
+distributions, since they're not needed to format the documentation
+any more.
+
+<item> Lots of bug-fixes to the multi-parameter type classes support.
+
+<item> @alpha-dec-osf1@ and @alpha-dec-osf3@ are now separate
+configurations. It turns out that an @alpha-dec-osf3@ build doesn't
+work on older versions of the OS.
</itemize>