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]