Improve the handling of threadDelay in the non-threaded RTS
[ghc.git] / README
diff --git a/README b/README
index 153ed24..11a6ed3 100644 (file)
--- a/README
+++ b/README
-fptools build system
-====================
+The Glasgow Haskell Compiler
+============================
 
-This is the top-level directory of the fptools build system.  Several
-packages are part of this build system; if you got this as part of a
-source distribution (eg. for GHC), then you will have one or more of
-the following directories:
+This is the source tree for GHC, a compiler and interactive
+environment for the Haskell functional programming language.
 
-    ghc                  The Glasgow Haskell Compiler
-    hslibs       A Collection of Haskell libraries
-    haddock      A Haskell documentation tool
-    haggis       The Haggis GUI toolkit
-    happy        The Happy Haskell parser generator
-    hdirect       Haskell interop tool
-    greencard    A foreign function interface pre-processor for Haskell.
-    libraries    Haskell libraries (reqd. by ghc)
-    nofib        The NoFib Haskell benchmarking suite
+For more information, visit GHC's web site:
 
-Additional documentation for each project can be found in its
-respective directory.
+  http://www.haskell.org/ghc/
 
-In addition, the following directories contain project-independent bits:
+Information for developers of GHC can be found here:
 
-    mk           GNU make setup used by all of fptools
-    glafp-utils   Shared utility programs
-    docs          Documentation on the installing and using
-                  the fptools build system.
-    distrib      Tools and additional bits for building distributions
+  http://hackage.haskell.org/trac/ghc/
 
-Quick start:  the following is *supposed* to work
 
-       $ ./configure
-       $ make
-       $ make install
+Getting the Source
+==================
 
-where 'make' is whatever GNU make is called on your system (GNU make
-is *required*).  The configuration script is a standard GNU autoconf
-script which accepts all the normal arguments, eg. --prefix=<blah> to
-install the package somewhere other than /usr/local.  Try ./configure
---help to get a full list of the options.
+There are two ways to get a source tree:
 
-There is usually an ANNOUNCE* file with any distribution.  Please
-consult that, or the <piece>/README file, to find out how to proceed.
+  1. Download source tarballs
+  ---------------------------
 
-Full documentation for the fptools build system can be found on the
-GHC web pages: 
+  Download the GHC source distribution:
 
-       http://www.haskell.org/ghc/
+      ghc-<version>-src.tar.bz2
 
---
-The GHC Team,  glasgow-haskell-users@haskell.org
+  which contains GHC itself and the "boot" libraries.
+
+  2. Check out the source code from git
+  -------------------------------------
+
+  First get the GHC git repository:
+
+    $ git clone http://darcs.haskell.org/ghc.git/
+
+  Then run the sync-all script in that repository
+  to get the other repositories:
+
+     $ cd ghc
+     $ ./sync-all get
+
+  This checks out the "boot" packages.
+
+
+Building & Installing
+=====================
+
+For full information on building GHC, see the GHC Building Guide [3].
+Here follows a summary - if you get into trouble, the Building Guide
+has all the answers.
+
+Before building GHC you may need to install some other tools and
+libraries.  See "Setting up your system for building GHC" [8].
+
+NB. in particular you need GHC installed in order to build GHC,
+because the compiler is itself written in Haskell.  For instructions
+on how to port GHC to a new platform, see the Building Guide [3].
+
+For building library documentation, you'll need Haddock [6].  To build
+the compiler documentation, you need a good DocBook XML toolchain and
+dblatex.
+
+Quick start:  the following gives you a default build:
+
+    $ perl boot
+    $ ./configure
+    $ make
+    $ make install
+
+The "perl boot" step is only necessary if this is a tree checked out
+from git.  For source distributions downloaded from GHC's web site,
+this step has already been performed.
+
+These steps give you the default build, which includes everything
+optimised and built in various ways (eg. profiling libs are built).
+It can take a long time.  To customise the build, see the file HACKING.
+
+Once you have a build you need to keep it going.  You need to keep all
+repos in sync with the sync-all script [7].  To get the latest changes:
+
+    $ ./sync-all pull
+    $ ./sync-all get
+
+
+References
+==========
+
+ [1] http://www.haskell.org/ghc/                        GHC Home Page
+ [2] http://hackage.haskell.org/trac/ghc                GHC Developer's Wiki
+ [3] http://hackage.haskell.org/trac/ghc/wiki/Building  Building Guide
+ [4] http://www.haskell.org/happy/                      Happy
+ [5] http://www.haskell.org/alex/                       Alex
+ [6] http://www.haskell.org/haddock/                    Haddock
+ [7] http://hackage.haskell.org/trac/ghc/wiki/Building/SyncAll
+ [8] http://hackage.haskell.org/trac/ghc/wiki/Building/Preparation
+
+
+Contributors
+============
+
+Please see
+
+   http://www.haskell.org/ghc/contributors.html