[project @ 1996-07-25 20:43:49 by partain]
[ghc-hetmet.git] / ANNOUNCE-2.01
index 0fc4ab0..d6014f1 100644 (file)
@@ -1,76 +1,96 @@
             The Glasgow Haskell Compiler -- version 2.01
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-We are proud to announce the first public release of the Glasgow
-Haskell Compiler (GHC) for the revised Haskell 1.3 language. Sources
-and binaries are freely available by anonymous FTP and on the
-World-Wide Web; details below.
+We are pleased to announce the first release of the Glasgow Haskell
+Compiler (GHC, version 2.01) for *Haskell 1.3*.  Sources and binaries
+are freely available by anonymous FTP and on the World-Wide Web;
+details below.
+
+Haskell is "the" standard lazy functional programming language; the
+current language version is 1.3, agreed in May, 1996.  The Haskell
+Report is online at
+http://haskell.cs.yale.edu/haskell-report/haskell-report.html.
 
 GHC 2.01 is a test-quality release, worth trying if you are a gung-ho
-Haskell user or if you want to ensure that we quickly fix bugs that
-affect your programs :-) We advise *AGAINST* deleting your copy of
-that old workhorse GHC 0.26 (for Haskell 1.2), and *AGAINST* relying
-on this compiler (2.01) in any way.  With your help in testing 2.01,
-we hope to release a more solid Haskell 1.3 compiler relatively soon.
+Haskell user or if you are keen to try the new Haskell 1.3 features.
+We advise *AGAINST* relying on this compiler (2.01) in any way.  We
+are releasing our current Haskell 1.2 compiler (GHC 0.29) at the same
+time; it should be pretty solid.
+
+If you want to hack on GHC itself, then 2.01 is for you.  The release
+notes comment further on this point.
 
-Haskell is "the" standard lazy functional programming language [see
-SIGPLAN Notices, May 1992].  The current language version is 1.3,
-agreed in May, 1996.
+What happens next?  I'm on sabbatical for a year, and Will Partain
+(the one who really makes GHC go) is leaving at the end of July 96 for
+a Real Job.  So you shouldn't expect rapid progress on 2.01 over the
+next 6-12 months.  
 
 The Glasgow Haskell project seeks to bring the power and elegance of
 functional programming to bear on real-world problems.  To that end,
 GHC lets you call C (including cross-system garbage collection),
-provides good profiling tools, supports ever richer I/O, and
-concurrency and parallelism.  Our goal is to make it the "tool of
-choice for real-world applications".
-
-GHC 2.01 is quite different from 0.26 (July 1995), as the new version
-number suggests.  (The 1.xx numbers are reserved for any Haskell-1.2
-compiler releases.)  Changes worth noting include:
-
-.......
-
-  * Concurrent Haskell: with this, you can build programs out of many
-    I/O-performing, interacting `threads'.  We have a draft paper
-    about Concurrent Haskell, and our forthcoming Haggis GUI toolkit
-    uses it.
-
-  * Parallel Haskell, running on top of PVM (Parallel Virtual Machine)
-    and hence portable to pretty much any parallel architecture,
-    whether shared memory or distributed memory.  With this, your
-    Haskell program runs on multiple processors, guided by `par` and
-    `seq` annotations.  The first pretty-much-everyone-can-try-it
-    parallel functional programming system!  NB: The parallel stuff is
-    "research-tool quality"... consider this an alpha release.
-
-  * "Foldr/build" deforestation (by Andy Gill) is in, as are
-    "SPECIALIZE instance" pragmas (by Patrick Sansom).
-
-  * The LibPosix library provides an even richer I/O interface than
-    the standard 1.3 I/O library.  A program like a shell or an FTP
-    client can be written in Haskell -- examples included.
-
-  * Yet more cool libraries: Readline (GNU command-line editing),
-    Socket (BSD sockets), Regex and MatchPS (GNU regular expressions).
-    By Darren Moffat and Sigbjorn Finne.
-
-  * New ports -- Linux (a.out) and MIPS (Silicon Graphics).
-
-  * NB: configuration has changed yet again -- for the better, of
-    course :-)
+provides good profiling tools, and concurrency and parallelism.  Our
+goal is to make it the "tool of choice for real-world applications".
+
+GHC 2.01 is substantially changed from 0.26 (July 1995), as the new
+version number suggests.  (The 1.xx numbers are reserved for further
+spinoffs from the Haskell-1.2 compiler.)  Changes worth noting
+include:
+
+  * GHC is now a Haskell 1.3 compiler (only).  Virtually all Haskell
+    1.2 modules need changing to go through GHC 2.01; the GHC
+    documentation includes a ``crib sheet'' of conversion advice.
+
+  * The Haskell compiler proper (ghc/compiler/ in the sources) has
+    been substantially rewritten and is, of course, Much, Much,
+    Better.  The typechecker and the "renamer" (module-system support)
+    are new.
+
+  * Sadly, GHC 2.01 is currently slower than 0.26.  It has taken
+    all our cycles to get it correct.  We fondly believe that the
+    architectural changes we have made will end up making 2.0x
+    *faster* than 0.2x, but we have yet to substantiate this belief;
+    sorry.  Still, 2.01 (built with 0.29) is quite usable.
+
+  * GHC 2.01's optimisation (-O) is not nearly as good as 0.2x, mostly
+    because we haven't taught it about cross-module information
+    (arities, inlinings, etc.).  For this reason, a
+    2.01-built-with-2.01 (bootstrapped) is no fun to use (too slow),
+    and, sadly, that is where we would normally get .hc (intermediate
+    C; used for porting) files from... (hence: none provided).
+
+  * GHC 2.01 is much smarter than 0.26 about when to recompile.  It
+    will abort a compilation that "make" thought was necessary at a
+    very early stage, if none of the imported types/classes/functions
+    *that are actually used* have changed.  This "recompilation
+    checker" uses a completely different interface-file format than
+    0.26.  (Interface files are a matter for the compilation system in
+    Haskell 1.3, not part of the language.)
+
+  * The 2.01 libraries are not "split" (yet), meaning you will end up
+    with much larger binaries...
+
+  * The not-mandated-by-the-language system libraries are now separate
+    from GHC (though usually distributed with it).  We hope they can
+    take on a "life of their own", independent of GHC.
+
+  * All the same cool extensions (e.g., unboxed values), system
+    libraries (e.g., Posix), profiling, Concurrent Haskell, Parallel
+    Haskell,...
+
+  * New ports: Linux ELF (same as distributed as GHC 0.28).
 
 Please see the release notes for a complete discussion of What's New.
 
-To run this release, you need a machine with 16+MB memory, GNU C
-(`gcc'), and `perl'.  We have seen GHC 0.26 work on these platforms:
-alpha-dec-osf2, hppa1.1-hp-hpux9, i386-unknown-linuxaout,
-m68k-sun-sunos4, mips-sgi-irix5, and sparc-sun-{sunos4,solaris2}.
-Similar platforms should work with minimal hacking effort.
-The installer's guide give a full what-ports-work report.
+To run this release, you need a machine with 16+MB memory (more if
+building from sources), GNU C (`gcc'), and `perl'.  We have seen GHC
+2.01 work on these platforms: alpha-dec-osf2, hppa1.1-hp-hpux9,
+sparc-sun-{sunos4,solaris2}, mips-sgi-irix5, and
+i386-unknown-{linux,solaris2,freebsd}.  Similar platforms should work
+with minimal hacking effort.  The installer's guide give a full
+what-ports-work report.
 
-Binaries are now distributed in `bundles', e.g. a "profiling bundle"
-or a "concurrency bundle" for your platform.  Just grab the ones you
-need.
+Binaries are distributed in `bundles', e.g. a "profiling bundle" or a
+"concurrency bundle" for your platform.  Just grab the ones you need.
 
 Once you have the distribution, please follow the pointers in
 ghc/README to find all of the documentation about this release.  NB:
@@ -78,32 +98,31 @@ preserve modification times when un-tarring the files (no `m' option
 for tar, please)!
 
 We run mailing lists for GHC users and bug reports; to subscribe, send
-mail to glasgow-haskell-{users,bugs}-request@dcs.glasgow.ac.uk.
-Please send bug reports to glasgow-haskell-bugs.
+mail to majordomo@dcs.gla.ac.uk; the msg body should be:
+
+    subscribe glasgow-haskell-<which> Your Name <your-email@where.you.are>
 
-Particular thanks to: Jim Mattson (author of much of the code) who has
-now moved to HP in California; and the Turing Institute who donated a
-lot of SGI cycles for the SGI port.
+Please send bug reports about GHC to glasgow-haskell-bugs@dcs.gla.ac.uk.
 
-Simon Peyton Jones and Will Partain
+Simon Peyton Jones
 
-Dated: 95/07/24
+Dated: July '96
 
 Relevant URLs on the World-Wide Web:
 
-GHC home page            http://www.dcs.glasgow.ac.uk/fp/software/ghc.html
-Glasgow FP group page     http://www.dcs.glasgow.ac.uk/fp/
+GHC home page            http://www.dcs.gla.ac.uk/fp/software/ghc/
+Glasgow FP group page     http://www.dcs.gla.ac.uk/fp/
 comp.lang.functional FAQ  http://www.cs.nott.ac.uk/Department/Staff/mpj/faq.html
 
 ======================================================================
-How to get GHC 0.26:
+How to get GHC 2.01:
 
 This release is available by anonymous FTP from the main Haskell
 archive sites, in the directory pub/haskell/glasgow:
 
-       ftp.dcs.glasgow.ac.uk  (130.209.240.50)
-       ftp.cs.chalmers.se     (129.16.227.140)
-       haskell.cs.yale.edu    (128.36.11.43)
+       ftp.dcs.gla.ac.uk   (130.209.240.50)
+       ftp.cs.chalmers.se  (129.16.227.140)
+       haskell.cs.yale.edu (128.36.11.43)
 
 The Glasgow site is mirrored by src.doc.ic.ac.uk (146.169.43.1), in
 computing/programming/languages/haskell/glasgow.
@@ -111,18 +130,18 @@ computing/programming/languages/haskell/glasgow.
 These are the available files (.gz files are gzipped) -- some are `on
 demand', ask if you don't see them:
 
-ghc-0.26-src.tar.gz    The source distribution; about 3MB.
+ghc-2.01-src.tar.gz    The source distribution; about 3MB.
 
-ghc-0.26.ANNOUNCE      This file.
+ghc-2.01.ANNOUNCE      This file.
 
-ghc-0.26.{README,RELEASE-NOTES} From the distribution; for those who
+ghc-2.01.{README,RELEASE-NOTES} From the distribution; for those who
                        want to peek before FTPing...
 
-ghc-0.26-ps-docs.tar.gz        Main GHC documents in PostScript format; in
+ghc-2.01-ps-docs.tar.gz        Main GHC documents in PostScript format; in
                        case your TeX setup doesn't agree with our
                        DVI files...
 
-ghc-0.26-<platform>.tar.gz Basic binary distribution for a particular
+ghc-2.01-<platform>.tar.gz Basic binary distribution for a particular
                        <platform>.  Unpack and go: you can compile
                        and run Haskell programs with nothing but one
                        of these files.  NB: does *not* include
@@ -130,14 +149,15 @@ ghc-0.26-<platform>.tar.gz Basic binary distribution for a particular
 
        <platform> ==>  alpha-dec-osf2
                        hppa1.1-hp-hpux9
-                       i386-unknown-linuxaout
+                       i386-unknown-freebsd
+                       i386-unknown-linux
                        i386-unknown-solaris2
                        m68k-sun-sunos4
                        mips-sgi-irix5
                        sparc-sun-sunos4
                        sparc-sun-solaris2
 
-ghc-0.26-<bundle>-<platform>.tar.gz
+ghc-2.01-<bundle>-<platform>.tar.gz
 
        <platform> ==>  as above
        <bundle>   ==>  prof (profiling)
@@ -148,18 +168,15 @@ ghc-0.26-<bundle>-<platform>.tar.gz
                        prof-conc (profiling for "conc[urrent]")
                        prof-ticky (ticky for "conc[urrent]")
 
-ghc-0.26-hc-files.tar.gz Basic set of intermediate C (.hc) files for the
+ghc-2.01-hc-files.tar.gz Basic set of intermediate C (.hc) files for the
                         compiler proper, the prelude, and `Hello,
                         world'.  Used for bootstrapping the system.
                         About 4MB.
 
-ghc-0.26-<bundle>-hc-files.tar.gz Further sets of .hc files, for
+ghc-2.01-<bundle>-hc-files.tar.gz Further sets of .hc files, for
                        building other "bundles", e.g., profiling.
 
-ghc-0.26-hi-files-<blah>.tar.gz Sometimes it's more convenient to
+ghc-2.01-hi-files-<blah>.tar.gz Sometimes it's more convenient to
                        use a different set of interface files than
                        the ones in *-src.tar.gz.  (The installation
                        guide will advise you of this.)
-
-We could provide diffs from previous versions of GHC, should you
-require them.  A full set would be very large (7MB).