Changes between Version 31 and Version 32 of Commentary/CodingStyle


Ignore:
Timestamp:
Apr 24, 2011 9:56:35 PM (3 years ago)
Author:
megacz
Comment:

move platform stuff to its own chapter

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/CodingStyle

    v31 v32  
    131131  Enables GHCi support, including the byte code generator and interactive user interface. This isn't the default, because the compiler needs to be bootstrapped with itself in order for GHCi to work properly. The reason is that the byte-code compiler and linker are quite closely tied to the runtime system, so it is essential that GHCi is linked with the most up-to-date RTS. Another reason is that the representation of certain datatypes must be consistent between GHCi and its libraries, and if these were inconsistent then disaster could follow.  
    132132 
    133  '''Platform tests''':: 
    134   There are three platforms of interest to GHC:  
    135   * '''The Build platform''': This is the platform on which we are building GHC.  
    136   * '''The Host platform''': This is the platform on which we are going to run this GHC binary, and associated tools.  
    137   * '''The Target platform''': This is the platform for which this GHC binary will generate code. At the moment, there is very limited support for having different values for build, host, and target. In particular: 
    138  
    139   The build platform is currently always the same as the host platform. The build process needs to use some of the tools in the source tree, for example ghc-pkg and hsc2hs.  
    140  
    141   If the target platform differs from the host platform, then this is generally for the purpose of building .hc files from Haskell source for porting GHC to the target platform. Full cross-compilation isn't supported (yet).  
    142   In the compiler's source code, you may make use of the following CPP symbols: 
    143  
    144 {{{ 
    145 xxx_TARGET_ARCH  
    146 xxx_TARGET_VENDOR  
    147 xxx_TARGET_OS  
    148 xxx_HOST_ARCH  
    149 xxx_HOST_VENDOR  
    150 xxx_HOST_OS  
    151 }}} 
    152   where xxx is the appropriate value: eg. i386_TARGET_ARCH.  
    153  
    154133== Compiler versions and language extensions == 
    155134