[project @ 1997-05-26 01:34:22 by sof]
[ghc-hetmet.git] / ghc / ANNOUNCE
1           The Glasgow Haskell Compiler -- version 2.02
2           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
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;
7 details below.
8
9 Haskell is "the" standard lazy functional programming language; the
10 current language version is 1.3, agreed in May, 1996.  The Haskell
11 Report is online at
12
13         http://haskell.cs.yale.edu/1.4/haskell-report.html
14
15 GHC 2.02 is a beta-quality release - some highlights:
16
17   * It is reliable.
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).
22
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.)
31
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're working on this.
36
37   * A couple of Haskell 1.4 features are incompletely supported,
38     notably polymorphic strictness annotations, and Unicode.
39
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.
44
45 GHC 2.02 is substantially changed from 2.01.  Changes worth noting
46 include:
47
48   * The whole front end, which deals with the module system, has 
49     been rewritten. The interface file format has changed.
50
51   * GHC 2.02 comes complete 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.
56
57   * GHC 2.02 is available for Win32 platforms.  From now on, Win32
58     (Windows NT and Windows 95) will be a fully supported platform
59     for GHC.
60
61   * GHC 2.02 supports full cross module inlining.  Unlike 0.29 and
62     its predecessors, inlining can happen even if the inlined body
63     mentions a function or type that is not itself exported.  This is
64     one place Haskell 1.4's new module system really pays off.
65
66   * Like 2.01, GHC 2.02 aborts a compilation if it decides that
67     nothing that the module imports *and acually uses* has changed.
68     This decision is now taken by the compiler itself, rather than
69     by a Perl script (as in 2.01) which sometimes got it wrong.
70
71   * The ghc/lib libraries are much more systematically organised.
72
73   * There's a completely new "make" system.  This will mainly affect people
74     who want the source distribution, who will hopefully find it much, much,
75     easier than grappling with the old Jmakefiles.  Even for binary
76     installation, the procedure is a little simpler, though.
77
78 Please see the release notes for a complete discussion of What's New.
79
80 To run this release, you need a machine with 16+MB memory (more if
81 building from sources), GNU C (`gcc'), and `perl'.  We have seen GHC
82 2.01 work on these platforms: alpha-dec-osf2, hppa1.1-hp-hpux9,
83 sparc-sun-{sunos4,solaris2}, mips-sgi-irix5, and
84 i386-unknown-{linux,solaris2,freebsd,cygwin32}.  Similar platforms
85 should work with minimal hacking effort.  The installer's guide give a
86 complete run-down of what-ports-work.
87
88 Binaries are distributed in `bundles', e.g. a "profiling bundle" or a
89 "concurrency bundle" for your platform.  Just grab the ones you need.
90
91 Once you have the distribution, please follow the pointers in the
92 README file to find all of the documentation about this release.  NB:
93 preserve modification times when un-tarring the files (no `m' option
94 for tar, please)!
95
96 We run mailing lists for GHC users and bug reports; to subscribe, send
97 mail to majordomo@dcs.gla.ac.uk; the msg body should be:
98
99     subscribe glasgow-haskell-<which> Your Name <your-email@where.you.are>
100
101 Please send bug reports about GHC to glasgow-haskell-bugs@dcs.gla.ac.uk.
102
103 Simon Peyton Jones
104
105 Dated: March 1997
106
107 Relevant URLs on the World-Wide Web:
108
109 GHC home page             http://www.dcs.gla.ac.uk/fp/software/ghc/
110 Glasgow FP group page     http://www.dcs.gla.ac.uk/fp/
111 comp.lang.functional FAQ  http://www.cs.nott.ac.uk/Department/Staff/mpj/faq.html
112
113 ======================================================================
114 How to get GHC 2.02:
115
116 This release is available by anonymous FTP from the main Haskell
117 archive sites, in the directory pub/haskell/glasgow:
118
119         ftp.dcs.gla.ac.uk   (130.209.240.50)
120         ftp.cs.chalmers.se  (129.16.227.140)
121         haskell.cs.yale.edu (128.36.11.43)
122
123 The Glasgow site is mirrored by src.doc.ic.ac.uk (146.169.43.1), in
124 computing/programming/languages/haskell/glasgow.
125
126 These are the available files (.gz files are gzipped) -- some are `on
127 demand', ask if you don't see them:
128
129 README.html             A WWW `front-end' to the contents of the glasgow
130                         directory.
131
132 ghc-2.02-src.tar.gz     The source distribution; about 3MB.
133
134 ghc-2.02.ANNOUNCE       This file.
135
136 ghc-2.02.{README,RELEASE-NOTES} From the distribution; for those who
137                         want to peek before FTPing...
138
139 ghc-2.02-ps-docs.tar.gz Main GHC documents in PostScript format; in
140                         case your TeX setup doesn't agree with our
141                         DVI files...
142
143 ghc-2.02-<platform>.tar.gz Basic binary distribution for a particular
144                         <platform>.  Unpack and go: you can compile
145                         and run Haskell programs with nothing but one
146                         of these files.  NB: does *not* include
147                         profiling (see below).
148
149         <platform> ==>  alpha-dec-osf2
150                         hppa1.1-hp-hpux9
151                         i386-unknown-freebsd
152                         i386-unknown-linux
153                         i386-unknown-solaris2
154                         i386-unknown-cygwin32
155                         m68k-sun-sunos4
156                         mips-sgi-irix5
157                         sparc-sun-sunos4
158                         sparc-sun-solaris2
159
160 ghc-2.02-<bundle>-<platform>.tar.gz
161
162         <platform> ==>  as above
163         <bundle>   ==>  prof (profiling)
164                         conc (concurrent Haskell)
165                         par  (parallel)
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]")
170
171 ghc-2.02-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.
174                          About 4MB.
175
176 ghc-2.02-<bundle>-hc-files.tar.gz Further sets of .hc files, for
177                         building other "bundles", e.g., profiling.
178
179 ghc-2.02-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.)
183