X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fphases.xml;h=d1086d8f0ac5cfff1e7ccee19c69b277135d8d3a;hb=a46bdb63d919da9478bcd1bee2933dc19bc174ab;hp=2b8871875532033d576e76b0bf82b948571146c9;hpb=5c2220aa9aac0fefcba5abbfa3059a6ef138655f;p=ghc-hetmet.git diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml index 2b88718..d1086d8 100644 --- a/docs/users_guide/phases.xml +++ b/docs/users_guide/phases.xml @@ -49,6 +49,28 @@ + cmd + + + + Use cmd as the LLVM + optimiser. + + + + + + cmd + + + + Use cmd as the LLVM + compiler. + + + + + cmd @@ -178,6 +200,24 @@ + option + + + + Pass option to the LLVM optimiser. + + + + + option + + + + Pass option to the LLVM compiler. + + + + option @@ -319,44 +359,6 @@ $ cat foo.hspp - __HASKELL98__ - __HASKELL98__ - - - If defined, this means that GHC supports the - language defined by the Haskell 98 report. - - - - - - __HASKELL__=98 - __HASKELL__=98 - - - In GHC 4.04 and later, the - __HASKELL__ - macro is defined as having the value - 98. - - - - - - __HASKELL1__ - __HASKELL1__ - - - If defined to n, that - means GHC supports the Haskell language defined in the - Haskell report version 1.n. - Currently 5. This macro is deprecated, and will probably - disappear in future versions. - - - - - __GLASGOW_HASKELL__ __GLASGOW_HASKELL__ @@ -395,55 +397,42 @@ $ cat foo.hspp - - __CONCURRENT_HASKELL__ - __CONCURRENT_HASKELL__ - - - This symbol is defined when pre-processing Haskell - (input) and pre-processing C (GHC output). Since GHC from - version 4.00 now supports concurrent haskell by default, - this symbol is always defined. - - - - - + __PARALLEL_HASKELL__ __PARALLEL_HASKELL__ - - Only defined when is in + + Only defined when is in use! This symbol is defined when pre-processing Haskell (input) and pre-processing C (GHC output). - + - + os_HOST_OS=1 - - This define allows conditional compilation based on + + This define allows conditional compilation based on the Operating System, whereos is the name of the current Operating System (eg. linux, mingw32 for Windows, solaris, etc.). - + - + - + arch_HOST_ARCH=1 - - This define allows conditional compilation based on + + This define allows conditional compilation based on the host architecture, wherearch is the name of the current architecture (eg. i386, x86_64, powerpc, sparc, etc.). - + @@ -574,6 +563,21 @@ $ cat foo.hspp + + + + + Compile via LLVM instead of using the native code + generator. This will generally take slightly longer than the + native code generator to compile but quicker than compiling + via C. Produced code is generally the same speed or faster + than the other two code generators. Compiling via LLVM + requires LLVM version 2.7 or later to be on the path. + + + + + @@ -633,7 +637,7 @@ $ cat foo.hspp different package will reside in a different shared library or binary. Note that using this option when linking causes GHC to link - against shared libraries. + against shared libraries. @@ -699,10 +703,10 @@ $ cat foo.hspp Omits the link step. This option can be used with - to avoid the automatic linking - that takes place if the program contains a Main - module. - + to avoid the automatic linking + that takes place if the program contains a Main + module. + @@ -799,9 +803,9 @@ $ cat foo.hspp This flag tells GHC to link against shared Haskell libraries. - This flag only affects the selection of dependent libraries, not - the form of the current target (see -shared). - See on how to + This flag only affects the selection of dependent libraries, not + the form of the current target (see -shared). + See on how to create them. Note that this option also has an effect on @@ -821,20 +825,20 @@ $ cat foo.hspp DLL, or a Mac OS dylib. GHC hides the operating system details beneath this uniform flag. - The flags / control whether the - resulting shared object links statically or dynamically to - Haskell package libraries given as option. Non-Haskell - libraries are linked as gcc would regularly link it on your - system, e.g. on most ELF system the linker uses the dynamic - libraries when found. + The flags / control whether the + resulting shared object links statically or dynamically to + Haskell package libraries given as option. Non-Haskell + libraries are linked as gcc would regularly link it on your + system, e.g. on most ELF system the linker uses the dynamic + libraries when found. - Object files linked into shared objects must be - compiled with , see + Object files linked into shared objects must be + compiled with , see - When creating shared objects for Haskell packages, the - shared object must be named properly, so that GHC recognizes - the shared object when linked against this package. See - shared object name mangling. + When creating shared objects for Haskell packages, the + shared object must be named properly, so that GHC recognizes + the shared object when linked against this package. See + shared object name mangling. @@ -845,9 +849,9 @@ $ cat foo.hspp - This flag selects one of a number of modes for finding shared - libraries at runtime. See for - a description of each mode. + This flag selects one of a number of modes for finding shared + libraries at runtime. See for + a description of each mode. @@ -864,21 +868,21 @@ $ cat foo.hspp to change which function is the "main" one, and the flag allows you to do so. The thing can be one of: - A lower-case identifier foo. GHC assumes that the main function is Main.foo. - An module name A. GHC assumes that the main function is A.main. - An qualified name A.foo. GHC assumes that the main function is A.foo. - + A lower-case identifier foo. GHC assumes that the main function is Main.foo. + An module name A. GHC assumes that the main function is A.main. + An qualified name A.foo. GHC assumes that the main function is A.foo. + Strictly speaking, is not a link-phase flag at all; it has no effect on the link step. The flag must be specified when compiling the module containing the specified main function (e.g. module A in the latter two items above). It has no effect for other modules, and hence can safely be given to ghc --make. - However, if all the modules are otherwise up to date, you may need to force - recompilation both of the module where the new "main" is, and of the - module where the "main" function used to be; - 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. + However, if all the modules are otherwise up to date, you may need to force + recompilation both of the module where the new "main" is, and of the + module where the "main" function used to be; + 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. @@ -1097,7 +1101,6 @@ $ cat foo.hspp