X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fphases.xml;h=cd18469e81638301e28f1a5ea0575a04fa070173;hb=ba5729e5b8d80b3fcc8a477cb36d6a03800ac0dd;hp=e5bac79dfd7dd1d7d1a7992b01726dc411956964;hpb=c5a97ea01a810333608ef1e26f5cb5422dd25928;p=ghc-hetmet.git diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml index e5bac79..cd18469 100644 --- a/docs/users_guide/phases.xml +++ b/docs/users_guide/phases.xml @@ -49,6 +49,28 @@ + cmd + + + + Use cmd as the + mangler. + + + + + + cmd + + + + Use cmd as the + splitter. + + + + + cmd @@ -82,17 +104,6 @@ - cmd - - - - Use cmd as the dependency - generator. - - - - - cmd @@ -155,6 +166,15 @@ + option + + + + Pass option to the mangler. + + + + option @@ -486,6 +506,24 @@ $ cat foo.hspp are fed to cmd on the command line after the three standard input and output arguments. + + + An example of a pre-processor is to convert your source files to the + input encoding that GHC expects, i.e. create a script + convert.sh containing the lines: + + +#!/bin/sh +( echo "{-# LINE 1 \"$2\" #-}" ; iconv -f l1 -t utf-8 $2 ) > $3 + + and pass -F -pgmF convert.sh to GHC. + The -f l1 option tells iconv to convert your + Latin-1 file, supplied in argument $2, while + the "-t utf-8" options tell iconv to return a UTF-8 encoded file. + The result is redirected into argument $3. + The echo "{-# LINE 1 \"$2\" #-}" + just makes sure that your error positions are reported as + in the original source file. @@ -725,7 +763,12 @@ $ cat foo.hspp Tell the linker to split the single object file that would normally be generated into multiple object files, one per top-level Haskell function or type in the module. - We use this feature for building GHC's libraries libraries + This only makes sense for libraries, where it means that + executables linked against the library are smaller as they only + link against the object files that they need. However, assembling + all the sections separately is expensive, so this is slower than + compiling normally. + We use this feature for building GHC's libraries (warning: don't use it unless you know what you're doing!). @@ -783,7 +826,7 @@ $ cat foo.hspp ghc is not clever enough to figure out that they both need recompiling. You can force recompilation by removing the object file, or by using the - flag. + flag. @@ -859,7 +902,7 @@ $ cat foo.hspp machine. See . The ability to make a foreign call that does not - block all other Haskell threads.. + block all other Haskell threads. The ability to invoke foreign exported Haskell functions from multiple OS threads.