summaryrefslogtreecommitdiff
path: root/ANNOUNCE-2.01
diff options
context:
space:
mode:
authorpartain <unknown>1996-07-25 21:33:42 +0000
committerpartain <unknown>1996-07-25 21:33:42 +0000
commit5eb1c77c795f92ed0f4c8023847e9d4be1a4fd0d (patch)
treeadb07110e00f00b2b2ef6365e16d5f58b260ce3c /ANNOUNCE-2.01
parentf7ecf7234c224489be8a5e63fced903b655d92ee (diff)
downloadhaskell-5eb1c77c795f92ed0f4c8023847e9d4be1a4fd0d.tar.gz
[project @ 1996-07-25 20:43:49 by partain]
Bulk of final changes for 2.01
Diffstat (limited to 'ANNOUNCE-2.01')
-rw-r--r--ANNOUNCE-2.01187
1 files changed, 102 insertions, 85 deletions
diff --git a/ANNOUNCE-2.01 b/ANNOUNCE-2.01
index 0fc4ab0f1b..d6014f1c6d 100644
--- a/ANNOUNCE-2.01
+++ b/ANNOUNCE-2.01
@@ -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).