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