Changes between Initial Version and Version 1 of Organisation


Ignore:
Timestamp:
Sep 11, 2006 12:08:35 PM (8 years ago)
Author:
simonmar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Organisation

    v1 v1  
     1 
     2 
     3= GHC Commentary: Top-level orgainsation of GHC = 
     4 
     5[[Image(ghc-top.png)]] 
     6 
     7The GHC API is the interface exported by [[GhcFile(compiler/main/GHC.hs)]].  To compile a Haskell module that uses the GHC API, use the flag {{{-package ghc}}} (in GHC 6.6 and later).  GHC itself contains a few front-ends: 
     8 
     9 * The "one-shot" mode, where GHC compiles each file on the command line separately (eg. {{{ghc -c Foo.hs}}}).  This mode 
     10   is implemented directly on top of [wiki:Commentary/Compiler/HscMain HscMain], since it compiles only one file at a 
     11   time.  In fact, this is all that GHC consisted of prior to version 5.00 when GHCi and {{{--make}}} were introduced. 
     12 
     13 * GHCi, the interactive environment, is implemented in [[GhcFile(compiler/ghci/InteractiveUI.hs)]] and sits squarely on top 
     14   of the GHC API. 
     15 
     16 * {{{--make}}} is almost a trivial client of the GHC API, and is implemented in [[GhcFile(compiler/main/Main.hs)]]. 
     17 
     18 * {{{-M}}}, the Makefile dependency generator, is also a client of the GHC API and is implemented in  
     19   [[GhcFile(compiler/main/DriverMkDepend.hs)]]. 
     20 
     21Note that since GHC is packaged as a single binary, all of these front-ends are present, and there is a single command-line interface implemented in [[GhcFile(compiler/main/Main.hs)]].