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