home *** CD-ROM | disk | FTP | other *** search
- From G.C.Wraith: 15/02/95
-
- Yesterday Mark P. Jones announced version 1.0 of Hugs. A version for
- Acorn machines that runs in a taskwindow, allowing scripts and project
- files to be run by clicking on their icons, will be made available on
- Hensa and on the Stuttgart file server by me as soon as Acorn has been
- persuaded to allocate two filetypes for .hs and .prj files.
-
- __________________________________________________________________________
- ___ ___ ___ ___ __________ __________
- / / / / / / / / / _______/ / _______/ Version 1.0
- / /___/ / / / / / / / _____ / /______
- / ____ / / / / / / / /_ / /______ / Copyright (c)
- / / / / / /___/ / / /___/ / _______/ / Mark P Jones
- /__/ /__/ /_________/ /_________/ /_________/ 1994, 1995
-
- The Haskell User's Gofer System. Derived from Gofer 2.30b.
-
- __________________________________________________________________________
-
- This is the first release of Hugs, the Haskell User's Gofer system. It
- provides a functional programming environment much like that of Gofer but
- with a much greater degree of compatibility with Haskell. Almost all of
- the features of Haskell 1.2 are implemented with the exception of the
- module system (like Gofer, module headers and import declarations are
- parsed, but are otherwise ignored). For example, Hugs supports Haskell
- style type classes, a full prelude, derived instances, defaults,
- overloaded numeric literals and pattern matching, and bignum arithmetic.
-
- Some of the fancier features of Gofer are not supported by Hugs. In some
- cases, this is necessary because they are incompatible with the Haskell
- type system (overlapping instances, multiple parameter type classes, the
- ability to use custom preludes,...). Others have been removed because they
- are experiments in language design that were appropriate for Gofer, but not
- for Hugs (c*n patterns, do notation, overloaded monad comprehensions,
- Orwell style guards,...). If you're wondering, constructor classes *are*
- supported.
-
- Hugs was written on a PC while I was between jobs at Yale and Nottingham.
- I'd been meaning to put together a system like this for some time, and have
- had strong encouragement from certain quarters, but hadn't had the time to
- work on it until then. Gofer has been popular and has played a useful role
- for me and for others. But as time has passed and Haskell has become more
- established as a standard, the differences and incompatibilities between
- the two languages has become something of a pain and an embarrassment,
- particularly as one of the goals in the design of Haskell was to `reduce
- unnecessary diversity in functional programming languages'.
-
- Hugs is derived from Gofer and, as a result, benefits from many of the
- bug-fixes and enhancements that have been made to Gofer over the past
- few years, a significant proportion of which have been suggested to me
- by Gofer users. However, there is also quite a lot of new code, so
- please be prepared to find bugs, and please report them to me if you
- do. Bearing in mind that this is the first release, you should probably
- expect to see some things change in future distributions.
-
- I've held back the release of Hugs until now because I didn't have the
- time to package it up and release it before. Hugs has benefited from
- the delay with the addition of things like finishing off the support
- for bignum arithmetic, but there are still a couple of other things I'd
- like to add in due course, the most obvious being 1.3 style monadic
- IO. There are also a couple of things that I've removed from this
- distribution because they weren't quite ready for public consumption
- and I didn't want to hold up the distribution any longer. Watch this
- space.
-
- Other things that might be FAQs:
-
- - Since I wrote Hugs, I've discovered how to handle multiple
- parameter classes in a way that is both useful and fully compatible
- with the rest of the type system. I'll probably hack that into the
- system when I get a chance. (See my work on simplifying and
- improving qualified types for details.)
-
- - There are no plans at the moment for a hugsc compiler, analogous to
- gofc; I don't think that would be particularly difficult, but I
- don't have the time.
-
- - Documentation for Hugs is in preparation. For the time being, if
- you are familiar with the Gofer system, then you aren't likely
- to have much difficulty with Hugs. If you're interested in the
- implementation, then much of the report on the implementation of
- Gofer still applies. The type checker is quite different though;
- the main technical achievement of Hugs is to make the old Gofer
- style approach to type classes (on which the implementation still
- depends) look like the Haskell type system. I started to write a
- paper about this, but there's a long way to go before it's finished.
-
- - For the time being, I intend to continue maintaining both Gofer and
- Hugs, but I haven't decided what I'll do about future development.
- It is unlikely that I will be able to keep Gofer and Hugs in step
- with one another in terms of future development.
-
- Your feedback, comments, suggestions and bug reports are most welcome!
- However, this is a very busy time for me and I will almost certainly
- be unable to respond quickly to messages about Hugs or Gofer during the
- next month or two.
-
- __________________________________________________________________________
-
- You can obtain a copy of Hugs by anonymous ftp from:
- ftp://ftp.cs.nott.ac.uk/pub/haskell/hugs
- or: ftp://ftp.cs.nott.ac.uk/pub/nott-fp/hugs
-
- Or, using the World Wide Web, from my home page:
- http://www.cs.nott.ac.uk/Department/Staff/mpj/index.html
- _________________________________________________________________________
- Mark P. Jones mpj@cs.nott.ac.uk
- __________________________________________________________________________
-