Changes between Version 25 and Version 26 of Commentary/Pipeline


Ignore:
Timestamp:
Jan 13, 2011 4:53:32 PM (4 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Pipeline

    v25 v26  
    22 
    33Video: [http://video.google.com/videoplay?docid=-4326420154219711812 Compilation Pipeline] and interface files (17'30") 
     4 
     5= Overview = 
     6 
     7GHC is structured into two parts: 
     8 * The `ghc` package (in subdirectory `compiler`), which implements almost all GHC's functionality. It is an ordinary Haskell library, and can be imported into a Haskell program by saying `import GHC`. 
     9 * The `ghc` binary (in subdirectory `ghc`) which implements imports the `ghc` package, and implements the I/O for the `ghci` interactive loop. 
     10 
     11Here's an overview of the module structure of the top levels of GHC library.   (Note: more precisly, this is the plan. Currently the module `Make` below is glommed into the giant module `GHC`.) 
     12{{{ 
     13          |---------------------------------| 
     14          |              GHC                | 
     15          | The root module for the GHC API | 
     16          | Very little code;               | 
     17          | just simple wrappers            | 
     18          |---------------------------------| 
     19                     /                \ 
     20                    /                  \ 
     21                   /                    \ 
     22 |------------------------|    |------------------------| 
     23 |        Make            |    |    InteractiveEval     | 
     24 | Implements --make      |    | Stuff to support the   | 
     25 | Deals with compiling   |    | GHCi interactive envt  | 
     26 |    multiple modules    |    |                        | 
     27 |------------------------|    |------------------------| 
     28           |                             | 
     29           |                             | 
     30 |-------------------------|             | 
     31 |   DriverPipeline        |             | 
     32 | Deals with compiling    |             | 
     33 |  *a single module*      |             | 
     34 | through all its stages  |             | 
     35 | (cpp, unlit, compile,   |             | 
     36 |  assemble, link etc)    |             | 
     37 |-------------------------|             | 
     38              \                          | 
     39               \                         | 
     40                \                        | 
     41         |----------------------------------------------| 
     42         |                    HscMain                   | 
     43         | Compiling a single module (or expression or  | 
     44         | stmt) to bytecode, or to a M.hc or M.s file  | 
     45         |----------------------------------------------| 
     46              |      |       |         |       | 
     47            Parse Rename Typecheck Optimise CodeGen 
     48}}} 
    449 
    550= The compilation pipeline =