Changes between Version 15 and Version 16 of Commentary


Ignore:
Timestamp:
Sep 11, 2006 9:53:33 AM (9 years ago)
Author:
simonmar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary

    v15 v16  
    1 == 0. Overview (SPJ) == 
     1= The GHC Commentary = 
     2 
     3This tree of wiki pages is a "commentary" on the GHC source code.  It contains all the explanatory material that doesn't belong in comments in the source code itself, because the material is wide-ranging, usually covers multiple source files, and is more architectural in nature.  The commentary can also be considered a design document for GHC. 
     4 
     5Please feel free to add maaterial to this commentary: don't worry too much about accuracy, in due course someone will edit your contribution.  Try to link to source files as much as possible by using this macro: {{{[[GhcFile(compiler/Makefile)]]}}} (the usual Trac {{{source:}}} macro doesn't work here because the GHC darcs repository isn't integrated into this Trac).  Also try to add appropriate links to other parts of the commentary. 
     6 
     7== Contents == 
    28 
    39 * [wiki:Commentary/Organisation The overall organisation of GHC] 
     
    511 * [wiki:Commentary/Pipeline The compilation pipeline] 
    612 
    7 == 1. Building (SM) == 
    8  * Getting the code (do a live build...) 
    9  * Setting up the build 
    10  * Building 
    11  * tweaking & recompiling, etc. 
    12  * how libraries/packages are built 
    13  * ghc-inplace vs. installed ghc, how does it run inplace (find its bits) 
    14  * how to "use" the build system and common tasks, pointer to docs 
    15  * using/extending the testsuite 
     13 * The Compiler 
     14   * [wiki:ModuleDependencies Compiler Module Dependencies] 
     15   * Roadmap: [wiki:Commentary/Compiler/HscMain compiling a single module] 
     16   * Key data types: 
     17     * Source-language syntax: [wiki:Commentary/Compiler/HsSynType HsSyn] 
     18     * Names: [wiki:Commentary/Compiler/RdrNameType RdrName and OccName], [wiki:Commentary/Compiler/NameType Name] 
     19     * [wiki:Commentary/Compiler/EntityTypes Entities]: variables, type constructors, data constructors, and classes. 
     20     * Types: Type 
     21     * [wiki:Commentary/Compiler/CoreSynType The core language]. 
     22     * Cmm. 
     23   * Passes: 
     24     * [wiki:Commentary/Compiler/Renamer Renamer] 
     25     * Typechecker 
     26     * Desugarer 
     27     * Core->core 
     28   * SPJ ModIface, ModDetails, ModGuts 
     29   * SPJ Core->CorePrep->Stg->Cmm 
     30   * [wiki:Commentary/PrimOps Primitive Operations (PrimOps)] 
     31   * SM GHC API 
     32   * SM HscMain upwards: ModSummary, Finder, upsweep, downsweep, 
     33   * [wiki:Commentary/CodingStyle Coding guidelines] 
    1634 
    17 == 2. The Compiler == 
    18  
    19  * [wiki:ModuleDependencies Compiler Module Dependencies] 
    20  * Roadmap: [wiki:Commentary/Compiler/HscMain compiling a single module] 
    21  * Key data types: 
    22    * Source-language syntax: [wiki:Commentary/Compiler/HsSynType HsSyn] 
    23    * Names: [wiki:Commentary/Compiler/RdrNameType RdrName and OccName], [wiki:Commentary/Compiler/NameType Name] 
    24    * [wiki:Commentary/Compiler/EntityTypes Entities]: variables, type constructors, data constructors, and classes. 
    25    * Types: Type 
    26    * [wiki:Commentary/Compiler/CoreSynType The core language]. 
    27    * Cmm. 
    28  * Passes: 
    29    * [wiki:Commentary/Compiler/Renamer Renamer] 
    30    * Typechecker 
    31    * Desugarer 
    32    * Core->core 
    33  * SPJ ModIface, ModDetails, ModGuts 
    34  * SPJ Core->CorePrep->Stg->Cmm 
    35  * [wiki:Commentary/PrimOps Primitive Operations (PrimOps)] 
    36  * SM GHC API 
    37  * SM HscMain upwards: ModSummary, Finder, upsweep, downsweep, 
    38  * [wiki:Commentary/CodingStyle Coding guidelines] 
    39  
    40 == 3. Back end (SM) == 
    41  
    42  *  SM execution model STG + eval/apply 
    43  *  SM Cmm->NCG 
    44  *  SM Cmm->BCO  (simple compilation scheme, no primops: GHC.PrimopWrappers) 
    45  *  SM Cmm->C 
    46  
    47 == 4. [wiki:Commentary/Rts The Runtime System] == 
     35 * [wiki:Commentary/Rts The Runtime System] 
     36   * [wiki:Commentary/Rts/Config RTS Configurations] 
     37   * [wiki:Commentary/Rts/Word The Word] 
     38   * [wiki:Commentary/Rts/Cmm What the hell is a {{{.cmm}}} file?] 
     39   * [wiki:Commentary/Rts/HeapObjects Layout of heap objects] 
     40   * [wiki:Commentary/Rts/Stack Layout of the stack] 
     41   * [wiki:Commentary/Rts/HaskellExecution Haskell Execution] 
     42   * [wiki:Commentary/Rts/Scheduler The Scheduler] 
     43   * [wiki:Commentary/Rts/Storage The Storage Manager] 
     44   * [wiki:Commentary/Rts/FFI So how does {{{foreign import "wrapper"}}} work?] 
     45   * [wiki:Commentary/Rts/Interpreter GHCi support: the byte-code interpreter and dynamic linker] 
     46   * [wiki:Commentary/Rts/AsyncExceptions Asynchronous exceptions] 
     47   * [wiki:Commentary/Rts/STM Software Transactional Memory (STM)] 
     48   * [wiki:Commentary/Rts/CAFs Garbage Collecting CAFs] 
     49   * [wiki:Commentary/Rts/Weak Weak Pointers and Finalizers] 
     50   * [wiki:Commentary/Rts/Conventions Coding conventions in the RTS]