home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / function / 1447 < prev    next >
Encoding:
Internet Message Format  |  1992-12-11  |  5.7 KB

  1. Path: sparky!uunet!wupost!cs.utexas.edu!sun-barr!ames!agate!doc.ic.ac.uk!uknet!glasgow!news
  2. From: simonpj@dcs.gla.ac.uk (simonpj)
  3. Newsgroups: comp.lang.functional
  4. Subject: Glasgow Haskell, version 0.10, now available
  5. Message-ID: <9212112129.AA28337@tutuila.dcs.gla.ac.uk>
  6. Date: 11 Dec 92 21:29:18 GMT
  7. Sender: news@dcs.glasgow.ac.uk (Network News)
  8. Organization: Glasgow University Computing Science Dept.
  9. Lines: 136
  10. Approved: usenet@dcs.glasgow.ac.uk
  11. Return-Path: <simonpj@dcs.gla.ac.uk>
  12. X-Mailer: mail-news 2.0.5
  13.  
  14.  
  15.           The Glasgow Haskell Compiler
  16.           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  17.  
  18. We are happy to announce the first full release of the Glasgow Haskell
  19. Compiler (GHC, version 0.10).  It is freely available by FTP; details
  20. appear below.
  21.  
  22. To run this release, you need a Sun4, probably with 16+MB memory, and
  23. GNU C (gcc), version 2.1 or greater, and "perl".  If building from
  24. source, you will need Chalmers HBC, version 0.998.x.
  25.  
  26. We hope you enjoy this system, and we look forward to hearing about
  27. your successes with it!  Please report bugs to
  28. glasgow-haskell-bugs@dcs.glasgow.ac.uk and direct general queries to
  29. glasgow-haskell-request@<same>.
  30.  
  31. Simon Peyton Jones
  32. (and his GRASPing colleagues)
  33.  
  34. Why a Haskell programmer might want to use GHC
  35. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  36. * Almost all of Haskell is implemented.  In particular, the full range
  37.   of data types is supported: arbitrary precision integers, rationals,
  38.   double-precision floats, and "real" arrays with O(1) access time.
  39.   (The release notes list all unimplemented language features.)
  40.  
  41. * An extensible I/O system is provided, based on a "monad" [1]. (The
  42.   standard Haskell I/O system is built on this foundation.)
  43.  
  44. * A number of significant language extensions are implemented:
  45.     - Fully fledged unboxed data types [2].
  46.     - Ability to write arbitrary in-line C-language code, using
  47.       the I/O monad to retain referential transparency.
  48.     - Incrementally-updatable arrays, also embedded in a monad.
  49.     - Mutable reference types.
  50.  
  51. * By default, the system uses a generational garbage collector which
  52.   lets you run programs whose live data is significantly larger than
  53.   the physical memory size before thrashing occurs.  (Conventional
  54.   2-space GC starts thrashing when the live data gets to about half
  55.   the physical memory size.)
  56.  
  57. * A new profiling system is supplied, which enables you to find out which
  58.   bits of your program are eating both *time* and the *space* [3].
  59.  
  60. * Good error messages.  Well, fairly good error messages.  Line
  61.   numbers are pretty accurate, and during type checking you get
  62.   several (accurate) error reports rather than just one.
  63.  
  64. * Performance: programs compiled with GHC "usually" beat
  65.   Chalmers-HBC-compiled ones.  If you find programs where HBC wins,
  66.   send them to us :-).
  67.  
  68. * We have a pretty good test suite, and this version passes
  69.   practically all of it.  (Yes, it can compile itself, too.) We hope
  70.   you will find the system to be robust.
  71.  
  72. Why a functional-language implementor might want to use GHC
  73. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  74. * We have tried very hard to write the compiler in a modular and
  75.   well-documented way, so that other researchers can modify and extend
  76.   it.  One of our goals is specifically to provide a framework to
  77.   support others' work.  Several people are already using it in this
  78.   way.
  79.  
  80. * Highly configurable runtime system.  Heavy use of C macros means
  81.   that you can modify much of the storage representation without
  82.   telling the compiler.  For example, the system comes with 4
  83.   different garbage collectors! (all working)
  84.  
  85. * Internals: extensive use of the second-order lambda calculus as an
  86.   intermediate code; the Spineless Tagless G-machine as evaluation
  87.   model [4].
  88.  
  89. * Various performance-measurement hooks.
  90.  
  91. Main shortcomings
  92. ~~~~~~~~~~~~~~~~~
  93. * No interactive system.  This is a batch compiler only.  (Any
  94.   volunteers?)
  95.  
  96. * Compiler is greedy on resources.  Going via C doesn't help here.
  97.  
  98. * This system should run on any Unix box.  We haven't had time to do
  99.   any non-Sun4 ports.  Help or prodding welcome.
  100.  
  101. References
  102. ~~~~~~~~~~
  103. All these papers come with the distribution [in ghc/docs/papers].
  104.  
  105. [1] "Imperative functional programming", Peyton Jones & Wadler, POPL '93
  106.  
  107. [2] "Unboxed data types as first-class citizens", Peyton Jones &
  108.     Launchbury, FPCA '91
  109.  
  110. [3] "Profiling lazy functional languages", Sansom & Peyton Jones,
  111.     Glasgow workshop '92
  112.  
  113. [4] "Implementing lazy functional languages on stock hardware", Peyton
  114.     Jones, Journal of Functional Programming, Apr 1992
  115.  
  116. How to get it
  117. ~~~~~~~~~~~~~
  118. This release is available, in whole or in part, from the usual Haskell
  119. anonymous FTP sites, in the directory pub/haskell/glasgow:
  120.  
  121.     nebula.cs.yale.edu     (128.36.13.1)
  122.     ftp.dcs.glasgow.ac.uk  (130.209.240.50)
  123.     animal.cs.chalmers.se  (129.16.225.66) [initially in pub/incoming]
  124.  
  125. (Beleaguered NIFTP users within the UK can get the same files from
  126. Glasgow by using a <FP>/haskell/glasgow prefix, instead of
  127. pub/haskell/glasgow.  Also, we are mirrored by src.doc.ic.ac.uk, in
  128. languages/haskell/glasgow, and you can get files from there by every
  129. means known to humanity.)
  130.  
  131. These are the available files:
  132.  
  133. ghc-0.10-src.tar.Z    The basic source distribution; assumes you
  134.             will compile it with Chalmers HBC, version
  135.             0.998.n, on a Sun4, for which you have GNU C
  136.             (gcc) version 2.1 or greater.  About 3MB.
  137.  
  138. ghc-0.10-bin-sun4.tar.Z    A binary distribution -- avoid compiling
  139.             altogether!  For SunOS 4.1.x; assumes you
  140.             have GNU C (gcc) version 2.x around...
  141.  
  142. ghc-0.10-patch-*    Patches to the original distribution.  There
  143.             are none to start with, of course, but there
  144.             might be by the time you grab the files.
  145.             Please check for them.
  146.  
  147. Once you have the distribution, please follow the pointers in the
  148. ghc/README file to find all of the documentation in and about this
  149. release.
  150.