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


Ignore:
Timestamp:
Jan 13, 2009 3:19:16 PM (6 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{{{