1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
The Glasgow Haskell Compiler -- version 2.01
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 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.
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, 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 (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 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:
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 majordomo@dcs.gla.ac.uk; the msg body should be:
subscribe glasgow-haskell-<which> Your Name <your-email@where.you.are>
Please send bug reports about GHC to glasgow-haskell-bugs@dcs.gla.ac.uk.
Simon Peyton Jones
Dated: July '96
Relevant URLs on the World-Wide Web:
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 2.01:
This release is available by anonymous FTP from the main Haskell
archive sites, in the directory pub/haskell/glasgow:
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.
These are the available files (.gz files are gzipped) -- some are `on
demand', ask if you don't see them:
ghc-2.01-src.tar.gz The source distribution; about 3MB.
ghc-2.01.ANNOUNCE This file.
ghc-2.01.{README,RELEASE-NOTES} From the distribution; for those who
want to peek before FTPing...
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-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
profiling (see below).
<platform> ==> alpha-dec-osf2
hppa1.1-hp-hpux9
i386-unknown-freebsd
i386-unknown-linux
i386-unknown-solaris2
m68k-sun-sunos4
mips-sgi-irix5
sparc-sun-sunos4
sparc-sun-solaris2
ghc-2.01-<bundle>-<platform>.tar.gz
<platform> ==> as above
<bundle> ==> prof (profiling)
conc (concurrent Haskell)
par (parallel)
gran (GranSim parallel simulator)
ticky (`ticky-ticky' counts -- for implementors)
prof-conc (profiling for "conc[urrent]")
prof-ticky (ticky for "conc[urrent]")
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-2.01-<bundle>-hc-files.tar.gz Further sets of .hc files, for
building other "bundles", e.g., profiling.
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.)
|