summaryrefslogtreecommitdiff
path: root/distrib/ANNOUNCE
blob: 011c1c9326980a9d09b5aee7b083982d2411a4f7 (plain)
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
183
	  The Glasgow Haskell Compiler -- version 2.02
	  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We are pleased to announce the first release of the Glasgow Haskell
Compiler (GHC, version 2.02) for *Haskell 1.4*.  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/1.4/haskell-report.html

GHC 2.02 is a beta-quality release - some highlights:

  * It is reliable.
     It has been extensively tested against a large suite of Haskell 1.2 
     programs, but not so extensively tested against Haskell 1.4 programs 
     because we don't have a comprehensive set (Donations of Haskell 1.4
     programs to our test suite are most welcome).

  * It should generate good code.
     All the optimisations that GHC 0.29 used to do are back in, with 
     the exception of specialisation.  It ought to be the case that
     GHC 2.02 outperforms GHC 0.29, because it has a much better
     handle on cross-module inlining, but there's a good chance that
     there are performance "holes" lurking.  We have yet to make
     a systematic comparison.  (Please send us programs where 2.02
     does noticeably worse than 0.29.)

  * It is more expensive than it should be.
     GHC 2.02 has received even less attention to its own performance.
     At present it eats more space and time than GHC 0.29, especially
     for very small programs.  We're working on this.

  * A couple of Haskell 1.4 features are incompletely supported,
    notably polymorphic strictness annotations, and Unicode.

If you want to use Haskell 1.4, this is a good moment to switch.  If
you don't need the Haskell 1.4 extensions, then stay with GHC 0.29.
If you want to hack on GHC itself, then 2.02 is definitely for you.
The release notes comment further on this point.

GHC 2.02 is substantially changed from 2.01.  Changes worth noting
include:

  * The whole front end, which deals with the module system, has 
    been rewritten. The interface file format has changed.

  * GHC 2.02 comes complete with Green Card, a C foreign language 
    interface for GHC.  Green card is a pre-processor that
    scans Haskell source files for Green Card directives, which
    it expands into tons of "ccall" boilerplate that marshalls
    your arguments to and from C.

  * GHC 2.02 is available for Win32 platforms.  From now on, Win32
    (Windows NT and Windows 95) will be a fully supported platform
    for GHC.

  * GHC 2.02 supports full cross module inlining.  Unlike 0.29 and
    its predecessors, inlining can happen even if the inlined body
    mentions a function or type that is not itself exported.  This is
    one place Haskell 1.4's new module system really pays off.

  * Like 2.01, GHC 2.02 aborts a compilation if it decides that
    nothing that the module imports *and acually uses* has changed.
    This decision is now taken by the compiler itself, rather than
    by a Perl script (as in 2.01) which sometimes got it wrong.

  * The ghc/lib libraries are much more systematically organised.

  * There's a completely new "make" system.  This will mainly affect people
    who want the source distribution, who will hopefully find it much, much,
    easier than grappling with the old Jmakefiles.  Even for binary
    installation, the procedure is a little simpler, though.

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,cygwin32}.  Similar platforms
should work with minimal hacking effort.  The installer's guide give a
complete run-down of what-ports-work.

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 the
README file 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: March 1997

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.02:

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:

README.html             A WWW `front-end' to the contents of the glasgow
			directory.

ghc-2.02-src.tar.gz	The source distribution; about 3MB.

ghc-2.02.ANNOUNCE	This file.

ghc-2.02.{README,RELEASE-NOTES} From the distribution; for those who
			want to peek before FTPing...

ghc-2.02-ps-docs.tar.gz	Main GHC documents in PostScript format; in
			case your TeX setup doesn't agree with our
			DVI files...

ghc-2.02-<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
			i386-unknown-cygwin32
			m68k-sun-sunos4
			mips-sgi-irix5
			sparc-sun-sunos4
			sparc-sun-solaris2

ghc-2.02-<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.02-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.02-<bundle>-hc-files.tar.gz Further sets of .hc files, for
			building other "bundles", e.g., profiling.

ghc-2.02-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.)