From: sof Date: Mon, 24 Mar 1997 04:39:04 +0000 (+0000) Subject: [project @ 1997-03-24 04:39:03 by sof] X-Git-Tag: Approximately_1000_patches_recorded~728 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=39592c91e69774df54530656ff53f99076c28223;hp=45b5c5e85c37d84b3fee383da6a63e84a9061b79;p=ghc-hetmet.git [project @ 1997-03-24 04:39:03 by sof] Updated for 2.02 --- diff --git a/ghc/ANNOUNCE b/ghc/ANNOUNCE new file mode 100644 index 0000000..011c1c9 --- /dev/null +++ b/ghc/ANNOUNCE @@ -0,0 +1,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- Your Name + +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-.tar.gz Basic binary distribution for a particular + . Unpack and go: you can compile + and run Haskell programs with nothing but one + of these files. NB: does *not* include + profiling (see below). + + ==> 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--.tar.gz + + ==> as above + ==> 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--hc-files.tar.gz Further sets of .hc files, for + building other "bundles", e.g., profiling. + +ghc-2.02-hi-files-.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.) + diff --git a/ghc/README b/ghc/README index 8dfc890..99d5b14 100644 --- a/ghc/README +++ b/ghc/README @@ -1,32 +1,32 @@ -This is version 2.01 of the Glorious Glasgow Haskell compilation -system (GHC). GHC 2.01 is a compiler for Haskell 1.3. +This is version 2.02 of the Glorious Glasgow Haskell compilation +system (GHC). GHC 2.02 is a compiler for Haskell 1.4. -2.01 is a full GHC release; however, as the first release of the 1.3 -compiler, it is "test" quality; it very well may have serious bugs. -The top-level file "ANNOUNCE-2.01" says more. +2.02 is a full GHC release; however, as the first release of the 1.4 +compiler, it is "beta" quality; it is reliable, but it may very well +have some bugs. The top-level file "ANNOUNCE-2.02" says more. Haskell is "the" standard lazy functional programming language. -Haskell 1.3 is the current version of the language, released in +Haskell 1.4 is the current version of the language, released in May. 1996. The language definition is on the Web at http://haskell.cs.yale.edu/haskell-report/haskell-report.html GHC documentation of interest: -* docs/install_guide/installing.{dvi,info,html}: How to configure, - build, and install the system. +* docs/installing.{dvi,info,html}: How to configure, build, and + install the system. The document, as with many others, is in TeX-produced DVI format (.dvi suffix), or GNU Info format (.info); the latter is close to plain ASCII, if that's what you want. -* docs/users_guide/user.{dvi,info,html}: How to use GHC; e.g., what +* ghc/docs/users_guide/user.{dvi,info,html}: How to use GHC; e.g., what options are available, how to cope with common problems, how to use the profiling facilities, etc. -* docs/release_notes/release{dvi,info,html}: Release notes for this - release (and all previous releases). +* ghc/docs/users_guide/release.{dvi,info,html}: Release notes for this + release (and earlier releases). -* docs/README: About the other documentation in this release. +* ghc/docs/README: About the other documentation in this release. We welcome your comments and suggestions about this software! Please do not suffer or grumble in silence. The "bug reports" section of the @@ -37,12 +37,11 @@ Current AQUA team (all @dcs.gla.ac.uk): Sigbjorn Finne (sof) [PhD student] Hans Wolfgang Loidl (hwloidl) [PhD student] - Simon Marlow (simonm) [PhD student] - Will Partain (partain) [hired hand, GRASP/AQUA] + Simon Marlow (simonm) [hired hand] + Thomas Nordin (nordin) [@cse.ogi.edu; Green Card Hero] Simon Peyton Jones (simonpj) [our Fearless Leader] Patrick Sansom (sansom) [hired hand, Bidirectional Analyses] Phil Trinder (trinder) [hired hand, Parade] - David N Turner (dnt) [hired hand, Linear Types] Past contributors and/or continuing advisors: @@ -52,22 +51,30 @@ Past contributors and/or continuing advisors: John Launchbury (jl) [AQUA; at OGI] Jim Mattson (mattson) [hired hand, AQUA; HP] Darren Moffat (moffatd) [slave, summer '95; at MoD] + Will Partain (partain) [GRASP/AQUA; touring with Johnny Cash] Bryan O'Sullivan (bos) [visiting slave, summer '94; at Sun] Alastair Reid (areid) [GHCI god, at Yale] Andr\'e Santos (andre) [PhD student; back in Brazil] - Phil Wadler (wadler) [GRASP; at Lucent soon] + David N Turner (dnt) [Linear Types; at An-Teallach] + Phil Wadler (wadler) [GRASP; at Lucent] Cool people who've let us use their machines: - hppa1.1-hp-hpux Sam Nelson, Stirling University - powerpc-ibm-aix Walter Robinson, Mechanical Eng'g, Glasgow U. + sparc-sun-sunos{4,5} PacSoft, Oregon Graduate Institute + hppa1.1-hp-hpux, + i386-unknown-linux Charles Krasic, Oregon Graduate Institute + alpha-dec-osf, + i386-*-solaris2 Mark Fanty, CSLU, Oregon Graduate Institute + +Also thanks to Conal Elliott, Microsoft Research for facilitating the work +on the Win32 port of GHC. Simon's projects' acronyms: GRIP ('87-'90): Graph reduction in parallel GRASP ('90-'92): Graph reduction applications support project AQUA ('93- ): Declarative systems architecture: a quantitative approach -Dated: 96/07 +Dated: 97/03 GHC WWW page: http://www.dcs.gla.ac.uk/fp/software/ghc.html diff --git a/ghc/RELEASE b/ghc/RELEASE new file mode 100644 index 0000000..3977e1f --- /dev/null +++ b/ghc/RELEASE @@ -0,0 +1,161 @@ +This is the pre-mangled text of the 2.02-specific part of the +GHC release notes. + +====================================================================== +Release~2.02 is the first release of Glasgow Haskell for Haskell~1.4. + +The announcement for this release is distributed as \tr{ANNOUNCE-2.02} +in the top-level directory. It contains very important caveats about +2.02, which we do not repeat here! + +Information about ``what's ported to which machine'' is in the +Installation Guide. Since 2.01, we've added support for Win32 +(Windows NT and Windows 95). + +%************************************************************************ +%* * +\subsection[2-02-config]{New configuration things in 2.02} +%* * +%************************************************************************ + +%************************************************************************ +%* * +\subsection[2-02-user-visible]{User-visible changes in 2.02, including incompatibilities} +%* * +%************************************************************************ + +GHC~2.02 is a compiler for Haskell~1.4 and, as such, introduces a +bunch of user-visible changes. The GHC user's guide has a section to +help you upgrade your programs to Haskell~1.4 from 1.2; all +user-visible changes are described there (and not repeated here). + +%************************************************************************ +%* * +\subsection[2-02-options]{New or changed GHC command-line options} +%* * +%************************************************************************ + +\begin{itemize} +\item GHC now warns of possibly-incomplete patterns in case expressions +and function bindings. You can suppress these warnings with @-fno-warn-incomplete-patterns@. + +GHC also warns of completely overlapped patterns. You can't switch this off. + +\item GHC can warn of shadowed names, though it does not do so by default. +Just occasionally this shows up +an otherwise hard-to-find bug. To warn of shadowed names use @-fwarn-name-shadowing@ + +\item You can now generate `make' dependencies via the compiler +driver, use the option @-M@ together with the list source files to compute +the dependencies for. By default, the dependencies will be appended to +the file \tr{Makefile} in the current directory. + +\item For hackers, the flag @-dshow-rn-trace@ shows what the renamer is up to. +Sit back and marvel. + +\end{itemize} + + +%************************************************************************ +%* * +\subsection[2-02-new-in-compiler]{New in the compiler proper} +%* * +%************************************************************************ + +\begin{itemize} +\item +Completely new ``make-world'' system, properly documented (at last) in the +installation guide. No Jmakefiles; but you *need* Gnu make +(gmake). The more recent the better (v 3.70+). + +\item +The ``renamer''---the part of the compiler that implements +the Haskell module system---has been completely rewritten, again. + +The format of interface files has changed significantly. Interface files +generated by 2.01 will not work with 2.02. + +\item +Even less special pleading for the Prelude than in 2.01. If you wanted +to write your own Prelude and drop it in, you would have +a really good chance now. +\end{itemize} + + +%************************************************************************ +%* * +\subsection[2-02-new-in-libraries]{In the libraries} +%* * +%************************************************************************ + +The libraries have been completely reorganised. There's a description in +\sectionref{syslibs}. + + +%************************************************************************ +%* * +\subsection[2-02-new-in-syslibs]{In ``hslibs'' libraries} +%* * +%************************************************************************ + + +%************************************************************************ +%* * +\subsection[2-02-new-in-rts]{In the runtime system} +%* * +%************************************************************************ + +\begin{itemize} +\item @ForeignObjs@ are properly deallocated when execution halts, as well +as when the garbage collector spots the @ForeignObj@ as being unreferenced. +This is important if you are using a @ForeignObj@ to refer to +a @COM@ object or other remote resource. You want that resource to be relased +when the program terminates. + +\item Files handles in the IO prelude are implemented using +@ForeignObjs@, and closed when the file handle is unreferenced. This +means that if you open zillions of files then just letting go of the +file handle is enough to close it. +\end{itemize} + +%************************************************************************ +%* * +\subsection[2-02-new-elsewhere]{Other new stuff} +%* * +%************************************************************************ + +2.02 is released together with Green Card, a foreign-language +interface generator for Haskell. More details elsewhere... + + +%************************************************************************ +%* * +\subsection[2-02-troublespots]{Known troublespots} +%* * +%************************************************************************ + +The 2.02 compiler has the following known deficiencies: + +\begin{description} +\item[native code generator, x86:] + +The native code generator for x86 platforms is by default switched +off, as the code the compiler produces with it enabled was discovered +just before releaseing to be wonky. Rather than delay the release +further, GHC on x86 platforms rely on \tr{GCC} as their +backend for now. Hopefully fixed soon. + +\item[Simplifier looping:] + +The simplifier(Glasgow-speak for optimiser) has been observed to get +into a loop in one or two cases. If you should observe this, please +report it as a bug - the work around is to turn off optimisation. + +\item[Undefined @*_vap_info@ symbols:] + +If the linker complains about some undefined @*_vap_info@ symbols when +linking 2.02 compiled programs (very unlikely) - fix this by compiling +the module where the references are coming from with +@-fno-lambda-lifting@. + +\end{description}