[project @ 1997-11-25 12:44:54 by simonm]
[ghc-hetmet.git] / ghc / docs / users_guide / 2-09-notes.lit
1 Changes made since 2.08:
2
3 \begin{itemize}
4 \item fixed type-synonym-arity bug in the typechecker.
5
6 \item fixed overloaded-constructor-argument bug in the typechecker.
7
8 \item fix off-by-one error in PackedString:filterPS.
9
10 \item fixed getCurrentDirectory.
11
12 \item fixed space-leak bug to do with polymorphic recursion and overloading.
13
14 \item fixed lit-deatify that was core dumping on Linux.
15
16 \item some fixes to the native code generator for i386.
17
18 \item unboxed the state in ST and IO, and specialised IO (it is no longer built
19   on top of ST).
20
21 \item reversed the sense of -fwarn-{overlapped,incomplete}-patterns.  The driver
22   now has to have the flag to provide the warning.
23
24 \item added -fwarn-missing-methods
25
26 \item added the -Wnot, -W, and -Wall options.  Set up a default set of warnings,
27   namely -fwarn-{overlapped,incomplete}-patterns.
28
29 \item Added -fwarn-duplicate-exports warning to check for duplicates in
30   export lists. Included in default warning set.
31
32 \item Renamed SampleVar.{write,read}Sample to SampleVar.{write,read}SampleVar
33
34 \item new mkdependHS options: -W disables warnings of duplicate interface
35   files found along the import path. --include-prelude *will* generate
36   dependencies on Prelude + any prelude/syslib .hi files used.
37
38 \item removed the @PrimIO@ type.  For a limited time only, @PrimIO@
39   will be available from @GlaExts@ as a synonym for @IO@.
40
41 \item changed the type of @_ccall_@s to return @(IO a)@.
42
43 \item renamed @mainPrimIO@ to @mainIO@, as it now has type @IO ()@.
44
45 \item fixed the semantics of the @-i@ flag to @mkdependHS@ to be the
46   same as GHC.
47
48 \item fix panic when a type constructor is used as a class.
49
50 \item don't arbitrarily truncate cost centre names in profiling information.
51 \end{itemize}
52
53 In 2.09, we've made extensive changes to the libraries that provide
54 access to various GHC extensions.  Many of these extensions are now
55 provided by Hugs, and as a result we are now using a common set of
56 extension libraries.
57
58 Briefly, the changes are as follows (for the definition of the new
59 libraries, see the section on GHC/Hugs libraries in the User Guide).
60
61 \begin{itemize}
62 \item Addr moved out of Foreign and into its own module.
63
64 \item MutVar module disappeared, IOExts now exports IORefs and associated
65   operations.
66
67 \item The @CCallable@ and @CReturnable@ classes now have their own
68   module, @CCall@.  You only need to import this module to provide a
69   new instance of one of these classes.
70
71 \item A new module @IOExts@ provides extensions to the @IO@ monad,
72   including @unsafePerformIO@, @unsafeInterleaveIO@, @IORef@s (mutable
73   variables), and @IOArray@s (mutable arrays).
74
75 \item Importing @ST@ is now the official way to get access to the @ST@
76   monad.  This module also supports @STRef@s (mutable variables) and
77   @STArray@s (mutable arrays).
78
79 \item A new module @LazyST@ provides an identical interface to @ST@
80   except that the underlying implementation of the monad is lazy.  Be
81   careful about mixing these two in the same program.
82
83 \item The new module @Bits@ provides a class of bit operations.  The
84   modules @Int@ and @Word@ provide signed and unsiged integer types
85   (respectively) of varying sizes, all of which support bit
86   operations. 
87
88 \item Added @Bits@, @Int@, @Word@ (and a few new primops over words).
89
90 \item The @GlaExts@ module will provide Glasgow-only extensions.  For
91   now, we've kept the old interface for compatibility, but beware that
92   this is deprecated and the relevant extension libraries should be
93   imported explicitly.
94
95 \item Several changes to the libraries in @lib/ghc@ - see the User
96   Guide for details.
97 \end{itemize}