c5fd50a0f0b314a6b2837cb48bf1da311bed8caf
[ghc-hetmet.git] / ghc / docs / users_guide / 3-01-notes.vsgml
1 <sect1>Release notes for version~3-01---2/97
2 <label id="release-3-01">
3 <p>
4
5 Changes made since 3.00:
6
7 <itemize>
8
9 <item> Fix interaction of "hiding" on import with "module M" on export.
10
11 <item> Fix some floating point conversion problems in @floatExtreme.lc@.
12
13 <item> New Hugs/GHC interface <tt/NumExts/ added and documented.
14
15 <item> moved @showOct@ and @showHex@ from @Numeric@ to @NumExts@.
16
17 <item> imported HBC's quick-sort algorithm from @QSort@ into @List@.
18
19 <item> added support for assertions. Conceptually, a new function has
20        been added to the Prelude with the following type: 
21
22        <tscreen> <verb>
23           assert :: Bool -> a -> a
24        </verb> </tscreen>
25
26        which has the following behaviour:
27  
28        <tscreen> <verb>
29           assert pred v 
30              | pred      = v
31              | otherwise = error "assertion failed"
32        </verb> </tscreen>
33        
34        However in this form, the practical use of assertions is
35        limited as no indication is given as to what assertion failed.
36        So to help out here, ghc will rewrite any uses of <tt/assert/
37        to instead invoke the function <tt/assert__/ :
38  
39        <tscreen> <verb>
40          assert__ :: String -> Bool -> a -> a
41        </verb> </tscreen>
42          
43        where the first argument to <tt/assert__/ is a compiler generated string 
44        which encodes the source location of the original <tt/assert/.
45
46        Assertions are a Glasgow extension, so -fglasgow-exts is
47        needed to use them.
48
49 </itemize>