1 The Glasgow Haskell Compiler -- version 2.02
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 We are pleased to announce the first release of the Glasgow Haskell
5 Compiler (GHC, version 2.02) for *Haskell 1.4*. 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.4, agreed in March, 1997. The Haskell
13 http://haskell.cs.yale.edu/1.4/
15 GHC 2.02 is a beta-quality release:
18 It has been extensively tested against a large suite of Haskell 1.2
19 programs, but not so extensively tested against Haskell 1.4 programs
20 because we don't have a comprehensive set (Donations of Haskell 1.4
21 programs to our test suite are most welcome).
23 * It should generate good code.
24 All the optimisations that GHC 0.29 used to do are back in, with
25 the exception of specialisation. It ought to be the case that
26 GHC 2.02 outperforms GHC 0.29, because it has a much better
27 handle on cross-module inlining, but there's a good chance that
28 there are performance "holes" lurking. We have yet to make
29 a systematic comparison. (Please send us programs where 2.02
30 does noticeably worse than 0.29.)
32 * It is more expensive than it should be.
33 GHC 2.02 has received even less attention to its own performance.
34 At present it eats more space and time than GHC 0.29, especially
35 for very small programs. We'll work on this.
37 * A couple of Haskell 1.4 features are incompletely supported,
38 notably polymorphic strictness annotations, and Unicode.
40 If you want to use Haskell 1.4, this is a good moment to switch. If
41 you don't need the Haskell 1.4 extensions, then stay with GHC 0.29.
42 If you want to hack on GHC itself, then 2.02 is definitely for you.
43 The release notes comment further on this point.
45 GHC 2.02 is substantially changed from 2.01. Changes worth noting
48 * The whole front end, which deals with the module system, has
49 been rewritten. The interface file format has changed.
51 * GHC 2.02 is released together with Green Card, a C foreign language
52 interface for GHC. Green card is a pre-processor that
53 scans Haskell source files for Green Card directives, which
54 it expands into tons of "ccall" boilerplate that marshalls
55 your arguments to and from C.
57 * GHC 2.02 is available for Win32 platforms, which, from now on,
58 is a fully supported platform for GHC.
60 * GHC 2.02 supports full cross module inlining. Unlike 0.29 and
61 its predecessors, inlining can happen even if the inlined body
62 mentions a function or type that is not itself exported. This is
63 one place Haskell 1.4's new module system really pays off.
65 * Like 2.01, GHC 2.02 aborts a compilation if it decides that
66 nothing that the module imports *and acually uses* has changed.
67 This decision is now taken by the compiler itself, rather than
68 by a Perl script (as in 2.01) which sometimes got it wrong.
70 * The ghc/lib libraries are much more systematically organised.
72 * There's a completely new "make" system. This will mainly affect people
73 who want the source distribution, who will hopefully find it much, much,
74 easier than grappling with the old Jmakefiles. Even for binary
75 installation, the procedure is a little simpler, though.
77 Please see the release notes for a complete discussion of What's New.
79 To run this release, you need a machine with 16+MB memory (more if
80 building from sources), GNU C (`gcc'), and `perl'. We have seen GHC
81 2.01 work on these platforms: alpha-dec-osf2, hppa1.1-hp-hpux9,
82 sparc-sun-{sunos4,solaris2}, mips-sgi-irix5, and
83 i386-unknown-{linux,solaris2,freebsd,cygwin32}. Similar platforms
84 should work with minimal hacking effort. The installer's guide
85 give a full what-ports-work report.
87 Binaries are distributed in `bundles', e.g. a "profiling bundle" or a
88 "concurrency bundle" for your platform. Just grab the ones you need.
90 Once you have the distribution, please follow the pointers in
91 ghc/README to find all of the documentation about this release. NB:
92 preserve modification times when un-tarring the files (no `m' option
95 We run mailing lists for GHC users and bug reports; to subscribe, send
96 mail to majordomo@dcs.gla.ac.uk; the msg body should be:
98 subscribe glasgow-haskell-<which> Your Name <your-email@where.you.are>
100 Please send bug reports about GHC to glasgow-haskell-bugs@dcs.gla.ac.uk.
106 Relevant URLs on the World-Wide Web:
108 GHC home page http://www.dcs.gla.ac.uk/fp/software/ghc/
109 Glasgow FP group page http://www.dcs.gla.ac.uk/fp/
110 comp.lang.functional FAQ http://www.cs.nott.ac.uk/Department/Staff/mpj/faq.html
112 ======================================================================
115 This release is available by anonymous FTP from the main Haskell
116 archive sites, in the directory pub/haskell/glasgow:
118 ftp.dcs.gla.ac.uk (130.209.240.50)
119 ftp.cs.chalmers.se (129.16.227.140)
120 haskell.cs.yale.edu (128.36.11.43)
122 The Glasgow site is mirrored by src.doc.ic.ac.uk (146.169.43.1), in
123 computing/programming/languages/haskell/glasgow.
125 These are the available files (.gz files are gzipped) -- some are `on
126 demand', ask if you don't see them:
128 ghc-2.02-src.tar.gz The source distribution; about 3MB.
130 ghc-2.02.ANNOUNCE This file.
132 ghc-2.02.{README,RELEASE-NOTES} From the distribution; for those who
133 want to peek before FTPing...
135 ghc-2.02-ps-docs.tar.gz Main GHC documents in PostScript format; in
136 case your TeX setup doesn't agree with our
139 ghc-2.02-<platform>.tar.gz Basic binary distribution for a particular
140 <platform>. Unpack and go: you can compile
141 and run Haskell programs with nothing but one
142 of these files. NB: does *not* include
143 profiling (see below).
145 <platform> ==> alpha-dec-osf2
149 i386-unknown-solaris2
150 i386-unknown-cygwin32
156 ghc-2.02-<bundle>-<platform>.tar.gz
158 <platform> ==> as above
159 <bundle> ==> prof (profiling)
160 conc (concurrent Haskell)
162 gran (GranSim parallel simulator)
163 ticky (`ticky-ticky' counts -- for implementors)
164 prof-conc (profiling for "conc[urrent]")
165 prof-ticky (ticky for "conc[urrent]")
167 ghc-2.02-hc-files.tar.gz Basic set of intermediate C (.hc) files for the
168 compiler proper, the prelude, and `Hello,
169 world'. Used for bootstrapping the system.