Changes between Version 1 and Version 2 of Building/Architecture/Idiom/PhaseOrdering


Ignore:
Timestamp:
Jan 22, 2011 7:43:56 PM (4 years ago)
Author:
igloo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Building/Architecture/Idiom/PhaseOrdering

    v1 v2  
    125125workaround for this problem. 
    126126 
     127== GHC's phases == 
     128 
     129In the GHC build system, we have 3 phases. Each phase is in two halves: some things are built while make is rebuilding makefiles (the "includes" half), and some things are built as they are the target we ask make to build (the "builds" half). 
     130 
     131 * Phase 0 
     132   * Includes: `package-data.mk` files for things built by the bootstrapping compiler. 
     133   * Builds: the dependency files for `hsc2hs` and `genprimopcode`. We need to do this now, as `hsc2hs` needs to be buildable in phase 1's includes (so that we can make the `hpc` library's `.hs` source files, which in turn is necessary for making its dependency files), and `genprimopcode` needs to be buildable in phase 1's includes (so that we can make the `primop-*.hs-incl` files, which are sources for the stage1 compiler library, and thus necessary for making its dependency files). 
     134 * Phase 1 
     135   * Includes: dependency files for things built by the bootstrapping compiler. 
     136   * Builds: `package-data.mk` files for everything else. Note that this requires configuring the packages, which means telling cabal which ghc to use, and thus the stage1 compiler gets built during this phase. 
     137 * Phase "" 
     138   * Includes: dependency files for everything else. 
     139   * Builds: Everything else.