1 The Glasgow Haskell Compiler -- version 2.01
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 We are pleased to announce the first release of the Glasgow Haskell
5 Compiler (GHC, version 2.01) for *Haskell 1.3*. Sources and binaries
6 are freely available by anonymous FTP and on the World-Wide Web;
9 Haskell is "the" standard lazy functional programming language; the
10 current language version is 1.3, agreed in May, 1996. The Haskell
12 http://haskell.cs.yale.edu/haskell-report/haskell-report.html.
14 GHC 2.01 is a test-quality release, worth trying if you are a gung-ho
15 Haskell user or if you are keen to try the new Haskell 1.3 features.
16 We advise *AGAINST* relying on this compiler (2.01) in any way. We
17 are releasing our current Haskell 1.2 compiler (GHC 0.29) at the same
18 time; it should be pretty solid.
20 If you want to hack on GHC itself, then 2.01 is for you. The release
21 notes comment further on this point.
23 What happens next? I'm on sabbatical for a year, and Will Partain
24 (the one who really makes GHC go) is leaving at the end of July 96 for
25 a Real Job. So you shouldn't expect rapid progress on 2.01 over the
28 The Glasgow Haskell project seeks to bring the power and elegance of
29 functional programming to bear on real-world problems. To that end,
30 GHC lets you call C (including cross-system garbage collection),
31 provides good profiling tools, and concurrency and parallelism. Our
32 goal is to make it the "tool of choice for real-world applications".
34 GHC 2.01 is substantially changed from 0.26 (July 1995), as the new
35 version number suggests. (The 1.xx numbers are reserved for further
36 spinoffs from the Haskell-1.2 compiler.) Changes worth noting
39 * GHC is now a Haskell 1.3 compiler (only). Virtually all Haskell
40 1.2 modules need changing to go through GHC 2.01; the GHC
41 documentation includes a ``crib sheet'' of conversion advice.
43 * The Haskell compiler proper (ghc/compiler/ in the sources) has
44 been substantially rewritten and is, of course, Much, Much,
45 Better. The typechecker and the "renamer" (module-system support)
48 * Sadly, GHC 2.01 is currently slower than 0.26. It has taken
49 all our cycles to get it correct. We fondly believe that the
50 architectural changes we have made will end up making 2.0x
51 *faster* than 0.2x, but we have yet to substantiate this belief;
52 sorry. Still, 2.01 (built with 0.29) is quite usable.
54 * GHC 2.01's optimisation (-O) is not nearly as good as 0.2x, mostly
55 because we haven't taught it about cross-module information
56 (arities, inlinings, etc.). For this reason, a
57 2.01-built-with-2.01 (bootstrapped) is no fun to use (too slow),
58 and, sadly, that is where we would normally get .hc (intermediate
59 C; used for porting) files from... (hence: none provided).
61 * GHC 2.01 is much smarter than 0.26 about when to recompile. It
62 will abort a compilation that "make" thought was necessary at a
63 very early stage, if none of the imported types/classes/functions
64 *that are actually used* have changed. This "recompilation
65 checker" uses a completely different interface-file format than
66 0.26. (Interface files are a matter for the compilation system in
67 Haskell 1.3, not part of the language.)
69 * The 2.01 libraries are not "split" (yet), meaning you will end up
70 with much larger binaries...
72 * The not-mandated-by-the-language system libraries are now separate
73 from GHC (though usually distributed with it). We hope they can
74 take on a "life of their own", independent of GHC.
76 * All the same cool extensions (e.g., unboxed values), system
77 libraries (e.g., Posix), profiling, Concurrent Haskell, Parallel
80 * New ports: Linux ELF (same as distributed as GHC 0.28).
82 Please see the release notes for a complete discussion of What's New.
84 To run this release, you need a machine with 16+MB memory (more if
85 building from sources), GNU C (`gcc'), and `perl'. We have seen GHC
86 2.01 work on these platforms: alpha-dec-osf2, hppa1.1-hp-hpux9,
87 sparc-sun-{sunos4,solaris2}, mips-sgi-irix5, and
88 i386-unknown-{linux,solaris2,freebsd}. Similar platforms should work
89 with minimal hacking effort. The installer's guide give a full
90 what-ports-work report.
92 Binaries are distributed in `bundles', e.g. a "profiling bundle" or a
93 "concurrency bundle" for your platform. Just grab the ones you need.
95 Once you have the distribution, please follow the pointers in
96 ghc/README to find all of the documentation about this release. NB:
97 preserve modification times when un-tarring the files (no `m' option
100 We run mailing lists for GHC users and bug reports; to subscribe, send
101 mail to majordomo@dcs.gla.ac.uk; the msg body should be:
103 subscribe glasgow-haskell-<which> Your Name <your-email@where.you.are>
105 Please send bug reports about GHC to glasgow-haskell-bugs@dcs.gla.ac.uk.
111 Relevant URLs on the World-Wide Web:
113 GHC home page http://www.dcs.gla.ac.uk/fp/software/ghc/
114 Glasgow FP group page http://www.dcs.gla.ac.uk/fp/
115 comp.lang.functional FAQ http://www.cs.nott.ac.uk/Department/Staff/mpj/faq.html
117 ======================================================================
120 This release is available by anonymous FTP from the main Haskell
121 archive sites, in the directory pub/haskell/glasgow:
123 ftp.dcs.gla.ac.uk (130.209.240.50)
124 ftp.cs.chalmers.se (129.16.227.140)
125 haskell.cs.yale.edu (128.36.11.43)
127 The Glasgow site is mirrored by src.doc.ic.ac.uk (146.169.43.1), in
128 computing/programming/languages/haskell/glasgow.
130 These are the available files (.gz files are gzipped) -- some are `on
131 demand', ask if you don't see them:
133 ghc-2.01-src.tar.gz The source distribution; about 3MB.
135 ghc-2.01.ANNOUNCE This file.
137 ghc-2.01.{README,RELEASE-NOTES} From the distribution; for those who
138 want to peek before FTPing...
140 ghc-2.01-ps-docs.tar.gz Main GHC documents in PostScript format; in
141 case your TeX setup doesn't agree with our
144 ghc-2.01-<platform>.tar.gz Basic binary distribution for a particular
145 <platform>. Unpack and go: you can compile
146 and run Haskell programs with nothing but one
147 of these files. NB: does *not* include
148 profiling (see below).
150 <platform> ==> alpha-dec-osf2
154 i386-unknown-solaris2
160 ghc-2.01-<bundle>-<platform>.tar.gz
162 <platform> ==> as above
163 <bundle> ==> prof (profiling)
164 conc (concurrent Haskell)
166 gran (GranSim parallel simulator)
167 ticky (`ticky-ticky' counts -- for implementors)
168 prof-conc (profiling for "conc[urrent]")
169 prof-ticky (ticky for "conc[urrent]")
171 ghc-2.01-hc-files.tar.gz Basic set of intermediate C (.hc) files for the
172 compiler proper, the prelude, and `Hello,
173 world'. Used for bootstrapping the system.
176 ghc-2.01-<bundle>-hc-files.tar.gz Further sets of .hc files, for
177 building other "bundles", e.g., profiling.
179 ghc-2.01-hi-files-<blah>.tar.gz Sometimes it's more convenient to
180 use a different set of interface files than
181 the ones in *-src.tar.gz. (The installation
182 guide will advise you of this.)