+++ /dev/null
-This is the release notes for GHC-2.04, describing what's new since the
-previous release:
-
-GHC 2.04 is a minor upgrade of GHC 2.02 (and the bugfix release,
-2.03), representing work done through May '97. This new release
-adds the following:
-
-* Data constructors can now have polymorphic fields, and ordinary
- functions can have polymorphic arguments. Details on
-
- http://www.cse.ogi.edu/~simonpj/quantification.html
-
- Existential types coming, but not done yet.
-
-* Pattern guards implemented, see
-
- http://www.cse.ogi.edu/~simonpj/guards.html
-
-* Compiler can now compile itself.
-
-* INLINE pragmas honoured (caveat: not yet
- working on instance-decl methods)
-
-* Simplifier improvements and better inlining gives
- better code; not sure how *much* better.
-
-* -dshow-rn-stats print out amusing statistics about what
- the renamer does.
-
-* When compiling without -O, the renamer (the pass responsible for
- slurping in interface file and making sure everything is in scope
- etc.) is now more careful about what it will bring in (especially
- data constructors and instance declarations). The upshot of this
- change is that a lot of the (unnecessary) work this pass did in
- 2.02/2.03 is now avoided.
-
- -fno-prune-tydecls and -fno-prune-instdecls switch off these
- renamer optimisations. You can try the effect with the renamer
- statistics. War stories welcome.
-
-* The Heroic Efforts of \tr{Andr\'e Santos <alms@di.ufpe.br>} have
- been included, AIX/RS6000 is now a supported \tr{ghc}
- platform! Bug reports concerning this port to (as always)
- glasgow-haskell-bugs@dcs.gla.ac.uk
-
-* A lot of the bugs that were present in versions 2.02/2.03
- have been fixed (thanks to everyone that reported bugs!).
- A list of the reported problems with 2.02/2.03 can be found at
-
- http://www.dcs.gla.ac.uk/fp/software/ghc/ghc-bugs.html
-
- No doubt entries for 2.04 will be added here as well :-)
-
-* This release is available in source format only. To build it you'll
- need to have either a copy of GHC~0.29 or GHC~2.02/3 installed.
- For people either doing porting work or work on a (supported)
- platform for which there is no GHC binary bundles available, the
- necessary intermediate files are also available (.hc and .hi files).
-
- Consult the installation guide for more information on how
- to build or bootstrap. The guide is included in the distribution
- (in the fptools/docs directory), and an on-line version of the
- document can be found at
-
- http://www.dcs.gla.ac.uk/fp/software/ghc/ghc-doc/install-guide.html
-
-
-In addition to the above, we've made the following minor changes to
-the GHC libraries/our implementation of the Haskell standard prelude:
-
-* `isPrefixOf' and `isSuffixOf' has been added to `List'
-* The empty type `Void' is now exported from the prelude.
-* `GlaExts' exports the `Lift' data type:
-
- data Lift a = Lift a
-
- you might need it someday...
-
-* The `Foreign' interface now also exports the representations
- for `Word' and `Addr'
-
-* The low-level file handle interface in the POSIX system
- library has been reworked a bit, most notably is the renaming of
- `Channel' to `Fd' and the introduction of operations for converting
- to and from `Handle' and `Fd' values. The changes are:
-
- --Renamed functions (old name in square brackets)
- openFd :: FilePath
- -> OpenMode
- -> Maybe FileMode
- -> OpenFileFlags
- -> IO Fd
- -- [openChannel]
- fdSeek :: Fd -> SeekMode -> FileOffset -> IO FileOffset
- --[seekChannel]
- fdRead :: Fd -> ByteCount -> IO (String, ByteCount)
- --[readChannel]
- fdWrite :: Fd -> String -> IO ByteCount
- --[writeChannel]
- fdClose :: Fd -> IO ()
- --[closeChannel]
- setFdOption :: Fd -> FdOption -> Bool -> IO ()
- --[setChannelOption]
- queryFdOption :: Fd -> FdOption -> IO Bool
- --[queryChannelOption]
- dup :: Fd -> IO Fd
- --[dupChannel]
- dupTo :: Fd -> Fd -> IO ()
- --[dupChannelTo]
-
- data FdOption = AppendOnWrite | CloseOnExec | NonBlockingRead
- --[ChannelOption]
- getFdStatus :: Fd -> IO FileStatus
- --[getChannelStatus]
-
- -- New data structure collecting together misc flags passed to openFd
- data OpenFileFlags =
- OpenFileFlags {
- append :: Bool,
- exclusive :: Bool,
- noctty :: Bool,
- nonBlock :: Bool,
- trunc :: Bool
- }
-
- --New ops for converting between Fd and Handle:
- fdToHandle :: Fd -> IO Handle
- handleToFd :: Handle -> IO Fd
- intToFd :: Int -> Fd -- use with care.