1 <sect1>Release notes for version~2.04---6/97
2 <label id="release-2-04">
5 GHC 2.04 is a minor upgrade of GHC 2.02 (and the bugfix release,
6 2.03), representing work done through May '97. This new release
11 Data constructors can now have polymorphic fields, and ordinary
12 functions can have polymorphic arguments. Details on
15 http://www.cse.ogi.edu/~simonpj/quantification.html
18 Existential types coming, but not done yet.
20 <item> Pattern guards implemented, see
23 http://www.cse.ogi.edu/~simonpj/guards.html
26 <item> Compiler can now compile itself.
28 <item> @INLINE@ pragmas honoured (caveat: not yet
29 working on instance-decl methods)
31 <item> Simplifier improvements and better inlining gives
32 better code; not sure how *much* better.
34 <item> @-dshow-rn-stats@ print out amusing statistics about what
38 When compiling without -O, the renamer (the pass responsible for
39 slurping in interface file and making sure everything is in scope
40 etc.) is now more careful about what it will bring in (especially
41 data constructors and instance declarations). The upshot of this
42 change is that a lot of the (unnecessary) work this pass did in
43 2.02/2.03 is now avoided.
45 @-fno-prune-tydecls@ and @-fno-prune-instdecls@ switch off these
46 renamer optimisations. You can try the effect with the renamer
47 statistics. War stories welcome.
50 The Heroic Efforts of @Andr\'e Santos <alms@@di.ufpe.br>@ have
51 been included, AIX/RS6000 is now a supported @ghc@
52 platform! Bug reports concerning this port to (as always)
53 @glasgow-haskell-bugs@@dcs.gla.ac.uk@.
56 A lot of the bugs that were present in versions 2.02/2.03
57 have been fixed (thanks to everyone that reported bugs!).
58 A list of the reported problems with 2.02/2.03 can be found at
61 http://www.dcs.gla.ac.uk/fp/software/ghc/ghc-bugs.html
64 No doubt entries for 2.04 will be added here as well :-)
67 This release is available in source format only. To build it you'll
68 need to have either a copy of GHC~0.29 or GHC~2.02/3 installed.
69 For people either doing porting work or work on a (supported)
70 platform for which there is no GHC binary bundles available, the
71 necessary intermediate files are also available (.hc and .hi files).
73 Consult the installation guide for more information on how
74 to build or bootstrap. The guide is included in the distribution
75 (in the fptools/docs directory), and an on-line version of the
76 document can be found at
79 http://www.dcs.gla.ac.uk/fp/software/ghc/ghc-doc/install-guide.html
83 In addition to the above, we've made the following minor changes to
84 the GHC libraries/our implementation of the Haskell standard prelude:
88 @isPrefixOf@ and @isSuffixOf@ has been added to @List@.
90 The empty type @Void@ is now exported from the prelude.
92 @GlaExts@ exports the @Lift@ data type:
98 you might need it someday...
101 The @Foreign@ interface now also exports the representations
102 for @Word@ and @Addr@.
104 <item> The low-level file handle interface in the @POSIX@ system
105 library has been reworked a bit, most notably is the renaming of
106 @Channel@ to @Fd@ and the introduction of operations for converting
107 to and from @Handle@ and @Fd@ values. The changes are:
110 --Renamed functions (old name in square brackets)
117 fdSeek :: Fd -> SeekMode -> FileOffset -> IO FileOffset
119 fdRead :: Fd -> ByteCount -> IO (String, ByteCount)
121 fdWrite :: Fd -> String -> IO ByteCount
123 fdClose :: Fd -> IO ()
125 setFdOption :: Fd -> FdOption -> Bool -> IO ()
127 queryFdOption :: Fd -> FdOption -> IO Bool
128 --[queryChannelOption]
131 dupTo :: Fd -> Fd -> IO ()
134 data FdOption = AppendOnWrite | CloseOnExec | NonBlockingRead
136 getFdStatus :: Fd -> IO FileStatus
139 -- New data structure collecting together misc flags passed to openFd
149 --New ops for converting between Fd and Handle:
150 fdToHandle :: Fd -> IO Handle
151 handleToFd :: Handle -> IO Fd
152 intToFd :: Int -> Fd -- use with care.