[project @ 1996-11-21 16:45:53 by simonm]
[ghc.git] / ANNOUNCE-2.01
1              The Glasgow Haskell Compiler -- version 2.01
2              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
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;
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 http://haskell.cs.yale.edu/haskell-report/haskell-report.html.
13
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.
19
20 If you want to hack on GHC itself, then 2.01 is for you.  The release
21 notes comment further on this point.
22
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
26 next 6-12 months.  
27
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".
33
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
37 include:
38
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.
42
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)
46     are new.
47
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.
53
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).
60
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.)
68
69   * The 2.01 libraries are not "split" (yet), meaning you will end up
70     with much larger binaries...
71
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.
75
76   * All the same cool extensions (e.g., unboxed values), system
77     libraries (e.g., Posix), profiling, Concurrent Haskell, Parallel
78     Haskell,...
79
80   * New ports: Linux ELF (same as distributed as GHC 0.28).
81
82 Please see the release notes for a complete discussion of What's New.
83
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.
91
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.
94
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
98 for tar, please)!
99
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:
102
103     subscribe glasgow-haskell-<which> Your Name <your-email@where.you.are>
104
105 Please send bug reports about GHC to glasgow-haskell-bugs@dcs.gla.ac.uk.
106
107 Simon Peyton Jones
108
109 Dated: July '96
110
111 Relevant URLs on the World-Wide Web:
112
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
116
117 ======================================================================
118 How to get GHC 2.01:
119
120 This release is available by anonymous FTP from the main Haskell
121 archive sites, in the directory pub/haskell/glasgow:
122
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)
126
127 The Glasgow site is mirrored by src.doc.ic.ac.uk (146.169.43.1), in
128 computing/programming/languages/haskell/glasgow.
129
130 These are the available files (.gz files are gzipped) -- some are `on
131 demand', ask if you don't see them:
132
133 ghc-2.01-src.tar.gz     The source distribution; about 3MB.
134
135 ghc-2.01.ANNOUNCE       This file.
136
137 ghc-2.01.{README,RELEASE-NOTES} From the distribution; for those who
138                         want to peek before FTPing...
139
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
142                         DVI files...
143
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).
149
150         <platform> ==>  alpha-dec-osf2
151                         hppa1.1-hp-hpux9
152                         i386-unknown-freebsd
153                         i386-unknown-linux
154                         i386-unknown-solaris2
155                         m68k-sun-sunos4
156                         mips-sgi-irix5
157                         sparc-sun-sunos4
158                         sparc-sun-solaris2
159
160 ghc-2.01-<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.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.
174                          About 4MB.
175
176 ghc-2.01-<bundle>-hc-files.tar.gz Further sets of .hc files, for
177                         building other "bundles", e.g., profiling.
178
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.)