From ba48b900a0b54fdb0b5148bc31024f817789d33b Mon Sep 17 00:00:00 2001 From: sof Date: Fri, 6 Jun 1997 22:43:22 +0000 Subject: [PATCH] [project @ 1997-06-06 22:43:21 by sof] 2.04 updates --- ghc/PATCHLEVEL | 3 +- ghc/RELEASE | 187 +++++++++++++++++++++++++++++++++++++------------------- 2 files changed, 125 insertions(+), 65 deletions(-) diff --git a/ghc/PATCHLEVEL b/ghc/PATCHLEVEL index 916eaba..9390fcc 100644 --- a/ghc/PATCHLEVEL +++ b/ghc/PATCHLEVEL @@ -1,2 +1 @@ -The Glamorous Glasgow Haskell Compiler, version 2.01, patchlevel 0 -(for Haskell 1.3) +The Glamorous Glasgow Haskell Compiler, version 2.04, patchlevel 0 diff --git a/ghc/RELEASE b/ghc/RELEASE index d12ca9c..4a11ba1 100644 --- a/ghc/RELEASE +++ b/ghc/RELEASE @@ -1,68 +1,129 @@ -This is the release notes for GHC-2.03, describing what's new since the +This is the release notes for GHC-2.04, describing what's new since the previous release: -GHC 2.03 is a minor upgrade of GHC 2.02. It differs in the following -ways: +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: -* A slew of small bugs are fixed. You can find the complete list at +* Data constructors can now have polymorphic fields, and ordinary + functions can have polymorphic arguments. Details on - http://www.cse.ogi.edu/~simonpj/ghc-bugs.html + http://www.cse.ogi.edu/~simonpj/quantification.html - One bug remains un-fixed, namely the crash when there's an empty - comment at the end of file.It's wierd! - -* Last-minute language changes have been implemented (minor changes - to the libraries, and to module export/hiding scope rules) - -* It is only available as a source distribution. If you want to - use it you'll have to build it from source. Nowadays this is - a well-documented process (see the build and installation guide, but - note that this release is still not self-booting, you still need - to have The Good Old Compiler (0.29) at your disposal). - -None of the bugs in GHC 2.02 are show-stoppers, so you'll only want -to upgrade if you are a build-from-source junkie and the bugs are -irritating you. - -Apart from bug-fixes, which are itemized elsewhere, -the exact language and standard-library changes are as follows: - -* A hiding clause hides the unqualified name, but not the qualified name. - -* There's a new @Numeric@ library, containing mostly mildly marginal - code for showing and reading numbers. Parts of its exports used to be - exported by @Prelude@, but now you'll have to import them explicitly. - It also defines some functions that weren't provided before; have a - look in the Haskell library report for details of complete interface. - -* The following extra functions are exported from IO: - - try, bracket, bracket_, hGetLine, hWaitForInput - -In addition, we've made following changes to GHC libraries/GHC's -implementation of the Haskell standard prelude: - - -* The function fromRational__, exported from PrelNum, is now called fromRat - (And it's exported by @Numeric@). - -* Documentation for the Glasgow specific interfaces plus the system - libraries have been re-instated. Posix library documentation - included also. - -* `maybe' is now exported from Prelude, as it should have been in 2.02. - -* Equality on IO.Handle is now defined as specified by the library report. - -* Ix.rangeSize returns `0' on an empty range;previously it failed. - -* The new interface GlaExts which is meant to be the gateway to the - various Glasgow extensions has now been documented. - -* GlaExts now exports the representation of Char - -* The mutable variable interface, MutVar, has also been documented, - together with ByteArray, MutableArray and Foreign. - -* Added documentation on how to compile mutually recursive modules with - 2.03. + 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 } 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. -- 1.7.10.4