The main README file is attached.  These are the files available on
ftp.dcs.glasgow.ac.uk, in pub/haskell/glasgow/working:

    ghc-0.21-src.tar.gz                 main sources
    ghc-0.21-src.tar.gz.a?              same, split for easier ftp'ing
    ghc-0.21-hc-files.tar.gz            intermediate C (.hc) files
    ghc-0.21-hc-files.tar.gz.a?         ditto, split
    ghc-0.21-bin-alpha.tar.gz           ready-to-run, DEC Alphas
    ghc-0.21-bin-alpha.tar.gz.a?        ditto, split
    ghc-0.21-bin-sun4.tar.gz            ready-to-run, SunOS4 SPARCs
    ghc-0.21-bin-sun4.tar.gz.a?         ditto, split

Will

=== ghc-0.21/ghc/README ==============================================

This is version 0.21 of the Glorious Glasgow Haskell compilation
system (GHC).

Version 0.21 is an "internal" release, intended for enthusiastic GHC
hackers.  We *hope* for a new "public" release in early July, and 0.21
gives them a chance to try things out before then.  So, they can,
um..., send us stuff to put in the release...

Version 0.19 was the last public release.  It has held up pretty well
and should be available wherever you got 0.21 from.  I commend 0.19 to
all sane people.

Changes since 0.20 (also an "internal" release):

* There are certainly bugs in 0.21, though it does compile and run
  most programs, including itself.

* Profiling is essentially unchanged since 0.19.

* Documentation is untouched since 0.19.

* 0.21-produced objects/interfaces are not compatible with earlier
  versions; you'll need to re-compile; please do not mix-and-match...

* GHC-compiled programs will no longer space-leak because of a naive
  implementation of lazy "tuple" matching.  (You may recall that HBC
  has a -fpbu option to avoid this problem.)  No special flag is
  required to get the desired behaviour from GHC.

  A relevant reference is: PL Wadler, "Fixing a space leak with a
  garbage collector", Software - Practice and Experience, 17,9, 1987,
  pages 595--608.

* GHC works on Alphas -- including "registerised", but no native-code
  generator.  We will distribute Alpha binaries once we've built them.

  NOTE: msub.c won't compile w/ gcc 2.5.8 on Alphas; just compile it
  by hand w/ cc.

  NOTE: The OSF1 linker does emit uninformative messages of the
  form...  "Linking some objects which contain exception information
  sections and some which do not. [...etc...]"  Your program should
  still work.

* Faster native-code generator for SPARC boxes.  (Not sure exactly
  *how much* faster...)

* Greater reliance on "configure" script to set up for host/target
  platforms.  The info it figures out is stored in
  ghc/includes/platform.h (among other places) and then consulted
  throughout the system.

* (Cross-module) Unfolding machinery revised.  Normally, the compiler
  (silently) throws away cross-module unfoldings if it cannot make
  sense of them -- e.g., if an unfolding mentions a name that is not
  visible.  If you would prefer that these naming "errors" *were*
  reported (so you can get "better" results from your pragmas), then
  throw in a "-fshow-pragma-name-errs" option.

* If you would prefer that a module export only those instances that
  it defines itself, i.e., that it *not export* any instances that it
  learned about from other modules, you can toss in a
  "-fomit-reexported-instances" option.
  
  This option *totally violates* the Haskell language definition (!),
  but it is fabulously wonderful in the presence of a very-recursive
  module structure (such as that of the compiler itself).

* Several of the compiler's "utility" module are available in a system
  library.  The module included are "Bag", FiniteMap", "ListSetOps",
  "Maybes", "Set", and "Util".  Things may change here...
  You use the library by giving a "-syslib ghc" command-line option.
  Note: not tested (except in the compiler).

* [internal] Per-simplification flags: Each run of the Core-to-Core
  "simplifier" now gets its very own set of "SimplifierSwitches".
  This increases the likelihood that you can make it do exactly what
  you want.

* [internal] The compiler is now built with "splittable unique
  supplies" (not standard Hsakell, but both GHC and HBC supply them --
  see the HBC "NameSupply" library module).  Buys some Very Useful
  Laziness.

* [internal] The compiler's "environments" (a functional-programming
  word for "lookup tables") and "sets" now use balanced binary trees
  -- see ghc/compiler/utils/FiniteMap.lhs.  ("map" is another f-p word
  for "lookup table"...)

* New stuff roughed in... Alastair Reid's stuff for "stable pointers"
  and "malloc pointers"...  Mattson on "threads"... Andy Gill and
  "foldr/build"... You'll no doubt hear more about all of this...

* Another 2--3MB or so of internal changes (as measured by diff -c2)...

Configuring 0.21 is a little different than 0.19:

    % cd <very-top>
    % ./configure --with-boot=c
    % ./STARTUP-ghc std
    % cd ghc; make all  # plain "make" doesn't work on the Alphas

If you are going to proceed by hacking on the compiler.... Once you
have the booted-from-.hc-files version going and *installed* (and
invokable as "ghc-0.21", say):

    % cd <very-top>
    % ./configure --with-boot=ghc-0.21 --with-hsc-built-via-C=no
    % ./STARTUP-ghc std
    % cd ghc; make all

The post-0.21 thing you then create will be compiled with "ghc-0.21"
and (if applicable) will not compile via C.

See the "configure" script if you want to know what other options are
-- there is no other documentation at this time!

Please ask [EMAIL PROTECTED] if you are about to
try something w/ 0.21 and are unsure....

Jim Mattson & Will Partain, Slaves of AQUA
{mattson,partain}@dcs.glasgow.ac.uk

Reply via email to