X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=ANNOUNCE-2.01;h=d6014f1c6d5a9b5dd510ec9f93a0e1cfbfa5c1a8;hp=0fc4ab0f1beadfa91a768650d3d4dbfa0811dfb6;hb=5eb1c77c795f92ed0f4c8023847e9d4be1a4fd0d;hpb=f7ecf7234c224489be8a5e63fced903b655d92ee diff --git a/ANNOUNCE-2.01 b/ANNOUNCE-2.01 index 0fc4ab0..d6014f1 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- Your Name -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-.tar.gz Basic binary distribution for a particular +ghc-2.01-.tar.gz Basic binary distribution for a particular . 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-.tar.gz Basic binary distribution for a particular ==> 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--.tar.gz +ghc-2.01--.tar.gz ==> as above ==> prof (profiling) @@ -148,18 +168,15 @@ ghc-0.26--.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--hc-files.tar.gz Further sets of .hc files, for +ghc-2.01--hc-files.tar.gz Further sets of .hc files, for building other "bundles", e.g., profiling. -ghc-0.26-hi-files-.tar.gz Sometimes it's more convenient to +ghc-2.01-hi-files-.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).