Changes between Version 19 and Version 20 of Attic/Building/BuildSystem/New


Ignore:
Timestamp:
Jan 13, 2009 3:19:16 PM (7 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Attic/Building/BuildSystem/New

    v19 v20  
    9797== Idiom: stages ==
    9898
    99 GHC is built by itself.  In a complete build we actually build GHC twice: once using the GHC version that is installed, and then again using the GHC we just built.  To be clear about which GHC we are talking about, we number them:
    100 
    101  * stage 0 is the GHC you have installed
    102  * stage 1 is the first GHC we build, using stage 0
    103  * stage 2 is the second GHC we build, using stage 1.  This is the one we normally install when you say `make install`.
    104  * stage 3 is optional, but is sometimes built to test stage 2.
     99What do we use to compile GHC?  GHC itself, of course.  In a complete build we actually build GHC twice: once using the GHC version that is installed, and then again using the GHC we just built.  To be clear about which GHC we are talking about, we number them:
     100
     101 * '''Stage 0''' is the GHC you have installed.  The "GHC you have installed" is also called "the bootstrap compiler".
     102 * '''Stage 1''' is the first GHC we build, using stage 0
     103 * '''Stage 2''' is the second GHC we build, using stage 1.  This is the one we normally install when you say `make install`.
     104 * '''Stage 3''' is optional, but is sometimes built to test stage 2.
    105105
    106106Only stages 2 and 3 support interactive execution (GHCi) and Template Haskell.  The reason being that when running interactive code we must dynamically link the packages, and only in stage 2 can we guarantee that the packages we dynamically link are compatible with those that GHC was built against (because they are the very same packages).
     
    167167
    168168(for example, see `rules/build-package`), and is invoked like this:
     169
    169170
    170171{{{