Changes between Version 20 and Version 21 of Commentary/Pipeline


Ignore:
Timestamp:
Oct 17, 2006 3:34:47 PM (8 years ago)
Author:
simonmar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Pipeline

    v20 v21  
    1010We start with {{{Foo.hs}}} or {{{Foo.lhs}}}, the "l" specifing whether literate style is being used. 
    1111 
    12  * Run the '''unlit pre-processor''', {{{unlit}}}, to remove the literate markup, generating {{{Foo.lpp}}}.  The {{{unlit}}} processor is a C program kept in {{{utils/unlit}}}. 
     12 * Run the '''unlit pre-processor''', {{{unlit}}}, to remove the literate markup, generating {{{Foo.lpp}}}.  The {{{unlit}}} processor is a C program kept in [[GhcFile(utils/unlit)]]. 
    1313 
    14  * Run the '''C preprocessor''', `cpp`, (if {{{-cpp}}} is specified), generating {{{Foo.cpp}}} or {{{Foo.hspp}}} respectively. 
     14 * Run the '''C preprocessor''', `cpp`, (if {{{-cpp}}} is specified), generating {{{Foo.hspp}}}. 
    1515 
    1616 * Run '''the compiler itself'''. This does not start a separate process; it's just a call to a Haskell function.  This step always generates an [wiki:Commentary/Compiler/IfaceFiles '''interface file'''] {{{Foo.hi}}}, and depending on what flags you give, it also generates a compiled file: 
    1717   * Assembly code: flag {{{-S}}}, file {{{Foo.s}}} 
    18    * C code: flag {{{-fviaC}}}, file {{{Foo.hc}}} 
     18   * C code: flag {{{-fvia-C}}}, file {{{Foo.hc}}} 
    1919   * C-- mode: flag {{{-fcmm}}}, file {{{Foo.cmm}}}, believed not to work 
    2020 
    21   * In the {{{-fviaC}}} case, run the '''C compiler''', followed by the [wiki:Commentary/EvilMangler Evil Mangler], generating {{{Foo.s}}} 
     21  * In the {{{-fvia-C}}} case: 
     22    * Run the '''C compiler''' to generate `Foo.raw_s`. 
     23    * Run the [wiki:Commentary/EvilMangler Evil Mangler], generating {{{Foo.s}}} 
    2224 
    23   * If `-fsplit-objs` is in force, run the '''splitter''' on `Foo.s`.  This splits `Foo.s` into lots of small files, `Foo/Foo1.s`, `Foo/Foo2.s`, etc.  The idea is that the static linker will thereby avoid linking dead code. 
     25  * If `-split-objs` is in force, run the '''splitter''' on `Foo.s`.  This splits `Foo.s` into lots of small files.  The idea is that the static linker will thereby avoid linking dead code. 
    2426 
    25   * Run the assembler on `Foo.s` or, if `-fsplit-objs` in in force, on each individual assembly file. 
    26  
     27  * Run the assembler on `Foo.s` or, if `-split-objs` in in force, on each individual assembly file.