Changes between Version 25 and Version 26 of Commentary/Pipeline


Ignore:
Timestamp:
Jan 13, 2011 4:53:32 PM (5 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 =