Marc Weber wrote:
On Tue, Mar 13, 2007 at 01:57:10PM +0100, Marc Weber wrote:
Hi
I did notice a lot of times that I just didn't remember the name of option X. How to look it up? Walk through html or pdf documentation?
Just printing a link to ghc online docs is not enough because: * maybe no internet availible * internet slow? * You still need to search/ scroll (too much effort) * getting help on flags is default behaviour of any linux application and most haskell developers are working on this os I think. Have you ever tried info bash, info grep, info whatsoever and got the result "please visit http:// .. ? That's like invoking ghc printing "This is only a fake. Please execute realghc instead"
I'd love to implement this. But I might need some time. I already know where to start (hacking on ghc intro on the ghc documentation site .. ;-)
How should it look like?
We already have support for man pages, I think we should try to avoid duplication here. If your GHC man page is installed correctly, then 'man ghc' should give you a nice consise list of options (see attached file, and scripts in docs/man in a GHC tree). So I think if we are to have a 'ghc --full-help' then it should just output the man page, as Ketil suggested. But we should make this work and output the correct man page regardless of whether 'man ghc' works, because you might have multiple GHC versions installed, and/or the system might not even have a man command (Windows). So every GHC installation should include a text version of the man page, that should be fairly easy to arrange. Cheers, Simon GHC(1) Glasgow Haskell Compiler GHC(1) NNAAMMEE GHC - the Glasgow Haskell Compiler SSYYNNOOPPSSIISS gghhcc [_o_p_t_i_o_n|_f_i_l_e_n_a_m_e]... gghhccii [_o_p_t_i_o_n|_f_i_l_e_n_a_m_e]... DDEESSCCRRIIPPTTIIOONN This manual page documents briefly the gghhcc and gghhccii commands. Note that gghhccii is not yet available on all architectures. Extensive docu- mentation is available in various other formats including DVI, PostScript and HTML; see below. Each of GHC's command line options is classified as either _s_t_a_t_i_c or _d_y_n_a_m_i_c. A static flag may only be specified on the command line, whereas a dynamic flag may also be given in an OPTIONS pragma in a source file or set from the GHCi command-line with :set. As a rule of thumb, all the language options are dynamic, as are the warning options and the debugging options. The rest are static, with the notable exceptions of --vv, --ccpppp, --ffaassmm, --ffvviiaa--CC, and --##iinncclluuddee. The OPTIONS sections lists the status of each flag. Common suffixes of file names for Haskell are: ..hhss Haskell source code; preprocess, compile ..llhhss literate Haskell source; unlit, preprocess, compile ..hhii Interface file; contains information about exported symbols ..hhcc intermediate C files .._x__oo way _x object files; common ways are: pp, uu, ss .._x__hhii way _x interface files OOPPTTIIOONNSS HHeellpp aanndd vveerrbboossiittyy ooppttiioonnss -? -help -n -v -v_n -V --version --numeric-version --print-libdir -ferror-spans -H_s_i_z_e -Rghc-timing WWhhiicchh pphhaasseess ttoo rruunn -E -C -S -c -x _s_u_f_f_i_x AAlltteerrnnaattiivvee mmooddeess ooff ooppeerraattiioonn --interactive --make -e expr -M RReeddiirreeccttiinngg oouuttppuutt -hcsuf _s_u_f_f_i_x -hidir _d_i_r -hisuf _s_u_f_f_i_x -o _f_i_l_e_n_a_m_e -odir _d_i_r -ohi _f_i_l_e_n_a_m_e -osuf _s_u_f_f_i_x -stubdir _d_i_r KKeeeeppiinngg iinntteerrmmeeddiiaattee ffiilleess -keep-hc-file -keep-s-file -keep-raw-s-file -keep-tmp-files TTeemmppoorraarryy ffiilleess -tmpdir FFiinnddiinngg iimmppoorrttss -i_d_i_r_1:_d_i_r_2:... -i IInntteerrffaaccee ffiillee ooppttiioonnss -ddump-hi -ddump-hi-diffs -ddump-minimal-imports --show-iface _f_i_l_e RReeccoommppiillaattiioonn cchheecckkiinngg -fforce-recomp -fno-force-recomp IInntteerraaccttiivvee--mmooddee ooppttiioonnss -ignore-dot-ghci -read-dot-ghci -fdebugging -fno-debugging PPaacckkaaggeess -package-name _P -package _P -hide-all-packages -hide-package _n_a_m_e -ignore-package _n_a_m_e -package-conf _f_i_l_e -no-user-package-conf LLaanngguuaaggee ooppttiioonnss -fallow-overlapping-instances -fno-allow-overlapping-instances -fallow-incoherent-instances -fno-allow-incoherent-instances -fallow-undecidable-instances -fno-allow-undecidable-instances -fcontext-stack=N_n 20 -farrows -fno-arrows -ffi or -fffi -fno-ffi -fgenerics -fno-fgenerics -fglasgow-exts -fno-glasgow-exts -fimplicit-params -fno-implicit-params -firrefutable-tuples -fno-irrefutable-tuples -fno-implicit-prelude -fimplicit-prelude -fno-monomorphism-restriction -fmonomorphism-restriction -fno-mono-pat-binds -fmono-pat-binds -fextended-default-rules -fno-extended-default-rules -foverloaded-strings -fno-overloaded-strings -fscoped-type-variables -fno-scoped-type-variables -fth -fno-th -fbang-patterns -fno-bang-patterns WWaarrnniinnggss -W -w -w -Wall -w -Werror -fwarn-deprecations -fno-warn-deprecations -fwarn-duplicate-exports -fno-warn-duplicate-exports -fwarn-hi-shadowing -fno-warn-hi-shadowing -fwarn-incomplete-patterns -fno-warn-incomplete-patterns -fwarn-incomplete-record-updates -fno-warn-incomplete-record-updates -fwarn-missing-fields -fno-warn-missing-fields -fwarn-missing-methods -fno-warn-missing-methods -fwarn-missing-signatures -fno-warn-missing-signatures -fwarn-name-shadowing -fno-warn-name-shadowing -fwarn-orphans -fno-warn-orphans -fwarn-overlapping-patterns -fno-warn-overlapping-patterns -fwarn-simple-patterns -fno-warn-simple-patterns -fwarn-tabs -fno-warn-tabs -fwarn-type-defaults -fno-warn-type-defaults -fwarn-unused-binds -fno-warn-unused-binds -fwarn-unused-imports -fno-warn-unused-imports -fwarn-unused-matches -fno-warn-unused-matches OOppttiimmiissaattiioonn lleevveellss -O -O0 -O_n -O0 IInnddiivviidduuaall ooppttiimmiissaattiioonnss -fcase-merge -fno-case-merge -fdicts-strict -fno-dicts-strict -fdo-eta-reduction -fno-do-eta-reduction -fdo-lambda-eta-expansion -fno-do-lambda-eta-expansion -fexcess-precision -fno-excess-precision -frules-off -frules-off -fignore-asserts -fno-ignore-asserts -fignore-interface-pragmas -fno-ignore-interface-pragmas -fliberate-case-threshold -fno-liberate-case-threshold -fomit-interface-pragmas -fno-omit-interface-pragmas -fmax-worker-args -fmax-simplifier-iterations -fno-state-hack -fno-cse -fno-full-laziness -fno-pre-inlining -fno-strictness -funbox-strict-fields -fno-unbox-strict-fields -funfolding-creation-threshold -fno-unfolding-creation-threshold -funfolding-fun-discount -fno-unfolding-fun-discount -funfolding-keeness-factor -fno-unfolding-keeness-factor -funfolding-update-in-place -fno-unfolding-update-in-place -funfolding-use-threshold -fno-unfolding-use-threshold PPrrooffiilliinngg ooppttiioonnss -auto -no-auto -auto-all -no-auto-all -caf-all -no-caf-all -prof -ticky HHaasskkeellll pprree--pprroocceessssoorr ooppttiioonnss -F CC pprree--pprroocceessssoorr ooppttiioonnss -cpp -D_s_y_m_b_o_l=_v_a_l_u_e -U -U_s_y_m_b_o_l -I_d_i_r CC ccoommppiilleerr ooppttiioonnss -#include _f_i_l_e CCooddee ggeenneerraattiioonn ooppttiioonnss -fasm -fvia-C -fno-code LLiinnkkiinngg ooppttiioonnss -fPIC -dynamic -framework _n_a_m_e -framework-path _n_a_m_e -l_l_i_b -L_d_i_r -main-is --mk-dll -no-hs-main -no-link -split-objs -static -threaded -debug RReeppllaacciinngg pphhaasseess -pgmL _c_m_d -pgmP _c_m_d -pgmc _c_m_d -pgmm _c_m_d -pgms _c_m_d -pgma _c_m_d -pgml _c_m_d -pgmdll _c_m_d -pgmF _c_m_d FFoorrcciinngg ooppttiioonnss ttoo ppaarrttiiccuullaarr pphhaasseess -optL _o_p_t_i_o_n -optP _o_p_t_i_o_n -optF _o_p_t_i_o_n -optc _o_p_t_i_o_n -optm _o_p_t_i_o_n -opta _o_p_t_i_o_n -optl _o_p_t_i_o_n -optdll _o_p_t_i_o_n -optdep _o_p_t_i_o_n PPllaattffoorrmm--ssppeecciiffiicc ooppttiioonnss -monly-[432]-regs EExxtteerrnnaall ccoorree ffiillee ooppttiioonnss -fext-core CCoommppiilleerr ddeebbuuggggiinngg ooppttiioonnss -dcore-lint -ddump-asm -ddump-bcos -ddump-cmm -ddump-cpranal -ddump-cse -ddump-deriv -ddump-ds -ddump-flatC -ddump-foreign -ddump-inlinings -ddump-occur-anal -ddump-opt-cmm -ddump-parsed -ddump-prep -ddump-rn -ddump-rules -ddump-simpl -ddump-simpl-iterations -ddump-spec -ddump-splices -ddump-stg -ddump-stranal -ddump-tc -ddump-types -ddump-worker-wrapper -ddump-if-trace -ddump-tc-trace -ddump-rn-trace -ddump-rn-stats -ddump-simpl-stats -dppr-debug -dppr-noprags -dppr-user-length -dsource-stats -dcmm-lint -dstg-lint -dstg-stats -dverbose-core2core -dverbose-stg2stg -dshow-passes -dfaststring-stats -unreg MMiisscc ccoommppiilleerr ooppttiioonnss -fno-hi-version-check -dno-black-holing -fno-method-sharing -fhistory-size -funregisterised -fno-asm-mangling -fno-print-bind-result HHEELLPP AANNDD VVEERRBBOOSSIITTYY OOPPTTIIOONNSS --?? help [mode] --hheellpp help [mode] --nn do a dry run [dynamic] --vv verbose mode (equivalent to --vv33) [dynamic] --vv_n set verbosity level [dynamic] --VV display GHC version [mode] ----vveerrssiioonn display GHC version [mode] ----nnuummeerriicc--vveerrssiioonn display GHC version (numeric only) [mode] ----pprriinntt--lliibbddiirr display GHC library directory [mode] --ffeerrrroorr--ssppaannss output full span in error messages [static] --HH_s_i_z_e Set the minimum heap size to _s_i_z_e [static] --RRgghhcc--ttiimmiinngg Summarise timing stats for GHC (same as +RTS -tstderr) [static] WWHHIICCHH PPHHAASSEESS TTOO RRUUNN --EE Stop after preprocessing (.hspp file) [mode] --CC Stop after generating C (.hc file) [mode] --SS Stop after generating assembly (.s file) [mode] --cc Do not link [dynamic] --xx _s_u_f_f_i_x Override default behaviour for source files [static] AALLTTEERRNNAATTIIVVEE MMOODDEESS OOFF OOPPEERRAATTIIOONN ----iinntteerraaccttiivvee Interactive mode - normally used by just running ghci [mode] ----mmaakkee Build a multi-module Haskell program, automatically figuring out dependencies. Likely to be much easier, and faster, than using make. [mode] --ee eexxpprr Evaluate _e_x_p_r [mode] --MM Generate dependency information suitable for use in a Makefile. [mode] RREEDDIIRREECCTTIINNGG OOUUTTPPUUTT --hhccssuuff _s_u_f_f_i_x set the suffix to use for intermediate C files [dynamic] --hhiiddiirr _d_i_r set directory for interface files [dynamic] --hhiissuuff _s_u_f_f_i_x set the suffix to use for interface files [dynamic] --oo _f_i_l_e_n_a_m_e set output filename [dynamic] --ooddiirr _d_i_r set output directory [dynamic] --oohhii _f_i_l_e_n_a_m_e set the filename in which to put the interface [dynamic] --oossuuff _s_u_f_f_i_x set the output file suffix [dynamic] --ssttuubbddiirr _d_i_r redirect FFi stub files [dynamic] KKEEEEPPIINNGG IINNTTEERRMMEEDDIIAATTEE FFIILLEESS --kkeeeepp--hhcc--ffiillee retain intermediate .hc files [dynamic] --kkeeeepp--ss--ffiillee retain intermediate .s files [dynamic] --kkeeeepp--rraaww--ss--ffiillee retain intermediate .raw_s files [dynamic] --kkeeeepp--ttmmpp--ffiilleess retain all intermediate temporary files [dynamic] TTEEMMPPOORRAARRYY FFIILLEESS --ttmmppddiirr set the directory for temporary files [dynamic] FFIINNDDIINNGG IIMMPPOORRTTSS --ii_d_i_r_1:_d_i_r_2:... add _d_i_r, _d_i_r_2, etc. to import path [static/:set] --ii Empty the import directory list [static/:set] IINNTTEERRFFAACCEE FFIILLEE OOPPTTIIOONNSS --dddduummpp--hhii Dump the new interface to stdout [dynamic] --dddduummpp--hhii--ddiiffffss Show the differences vs. the old interface [dynamic] --dddduummpp--mmiinniimmaall--iimmppoorrttss Dump a minimal set of imports [dynamic] ----sshhooww--iiffaaccee _f_i_l_e Read the interface in _f_i_l_e and dump it as text to stdout. [mode] RREECCOOMMPPIILLAATTIIOONN CCHHEECCKKIINNGG --ffffoorrccee--rreeccoommpp Turn off recompilation checking; implied by any --dddduummpp--XX option [dynamic] IINNTTEERRAACCTTIIVVEE--MMOODDEE OOPPTTIIOONNSS --iiggnnoorree--ddoott--gghhccii Disable reading of .ghci files [static] --rreeaadd--ddoott--gghhccii Enable reading of .ghci files [static] --ffddeebbuuggggiinngg Generate bytecode enabled for debugging [dynamic] --ffnnoo--ddeebbuuggggiinngg Do not include debugging information in bytecodes [dynamic] PPAACCKKAAGGEESS --ppaacckkaaggee--nnaammee _P Compile to be part of package _P [dynamic] --ppaacckkaaggee _P Expose package _P [static/:set] --hhiiddee--aallll--ppaacckkaaggeess Hide all packages by default [static] --hhiiddee--ppaacckkaaggee _n_a_m_e Hide package _P [static/:set] --iiggnnoorree--ppaacckkaaggee _n_a_m_e Ignore package _P [static/:set] --ppaacckkaaggee--ccoonnff _f_i_l_e Load more packages from _f_i_l_e [static] --nnoo--uusseerr--ppaacckkaaggee--ccoonnff Don't load the user's package config file. [static] LLAANNGGUUAAGGEE OOPPTTIIOONNSS --ffaallllooww--oovveerrllaappppiinngg--iinnssttaanncceess Enable overlapping instances [dynamic] --ffaallllooww--iinnccoohheerreenntt--iinnssttaanncceess Enable incoherent instances. Implies --ffaallllooww--oovveerrllaappppiinngg--iinn-- ssttaanncceess [dynamic] --ffaallllooww--uunnddeecciiddaabbllee--iinnssttaanncceess Enable undecidable instances [dynamic] --ffccoonntteexxtt--ssttaacckk==NN_n set the limit for context reduction [dynamic] --ffaarrrroowwss Enable arrow notation extension [dynamic] --ffffii or --ffffffii Enable foreign function interface (implied by --ffggllaassggooww--eexxttss) [dynamic] --ffggeenneerriiccss Enable generic classes [dynamic] --ffggllaassggooww--eexxttss Enable most language extensions [dynamic] --ffiimmpplliicciitt--ppaarraammss Enable Implicit Parameters. Implied by --ffggllaassggooww--eexxttss. [dynamic] --ffiirrrreeffuuttaabbllee--ttuupplleess Make tuple pattern matching irrefutable [dynamic] --ffnnoo--iimmpplliicciitt--pprreelluuddee Don't implicitly import Prelude [dynamic] --ffnnoo--mmoonnoommoorrpphhiissmm--rreessttrriiccttiioonn Disable the monomorphism restriction [dynamic] --ffnnoo--mmoonnoo--ppaatt--bbiinnddss Make pattern bindings polymorphic [dynamic] --ffeexxtteennddeedd--ddeeffaauulltt--rruulleess Use GHCi's extended default rules in a normal module [dynamic] --ffoovveerrllooaaddeedd--ssttrriinnggss Enable overloaded string literals. [dynamic] --ffssccooppeedd--ttyyppee--vvaarriiaabblleess Enable lexically-scoped type variables. Implied by --ffggllaass-- ggooww--eexxttss. [dynamic] --fftthh Enable Template Haskell. No longer implied by --ffggllaassggooww--eexxttss. [dynamic] --ffbbaanngg--ppaatttteerrnnss Enable bang patterns. [dynamic] WWAARRNNIINNGGSS --WW enable normal warnings [dynamic] --ww disable all warnings [dynamic] --WWaallll enable all warnings [dynamic] --WWeerrrroorr make warnings fatal [dynamic] --ffwwaarrnn--ddeepprreeccaattiioonnss warn about uses of functions & types that are deprecated [dynamic] --ffwwaarrnn--dduupplliiccaattee--eexxppoorrttss warn when an entity is exported multiple times [dynamic] --ffwwaarrnn--hhii--sshhaaddoowwiinngg warn when a .hi file in the current directory shadows a library [dynamic] --ffwwaarrnn--iinnccoommpplleettee--ppaatttteerrnnss warn when a pattern match could fail [dynamic] --ffwwaarrnn--iinnccoommpplleettee--rreeccoorrdd--uuppddaatteess warn when a record update could fail [dynamic] --ffwwaarrnn--mmiissssiinngg--ffiieellddss warn when fields of a record are uninitialised [dynamic] --ffwwaarrnn--mmiissssiinngg--mmeetthhooddss warn when class methods are undefined [dynamic] --ffwwaarrnn--mmiissssiinngg--ssiiggnnaattuurreess warn about top-level functions without signatures [dynamic] --ffwwaarrnn--nnaammee--sshhaaddoowwiinngg warn when names are shadowed [dynamic] --ffwwaarrnn--oorrpphhaannss warn when the module contains "orphan" instance declarations or rewrite rules [dynamic] --ffwwaarrnn--oovveerrllaappppiinngg--ppaatttteerrnnss warn about overlapping patterns [dynamic] --ffwwaarrnn--ssiimmppllee--ppaatttteerrnnss warn about lambda-patterns that can fail [dynamic] --ffwwaarrnn--ttaabbss warn if there are tabs in the source file [dynamic] --ffwwaarrnn--ttyyppee--ddeeffaauullttss warn when defaulting happens [dynamic] --ffwwaarrnn--uunnuusseedd--bbiinnddss warn about bindings that are unused [dynamic] --ffwwaarrnn--uunnuusseedd--iimmppoorrttss warn about unnecessary imports [dynamic] --ffwwaarrnn--uunnuusseedd--mmaattcchheess warn about variables in patterns that aren't used [dynamic] OOPPTTIIMMIISSAATTIIOONN LLEEVVEELLSS --OO Enable default optimisation (level 1) [dynamic] --OO_n Set optimisation level _n [dynamic] IINNDDIIVVIIDDUUAALL OOPPTTIIMMIISSAATTIIOONNSS --ffccaassee--mmeerrggee Enable case-merging [dynamic] --ffddiiccttss--ssttrriicctt Make dictionaries strict [static] --ffddoo--eettaa--rreedduuccttiioonn Enable eta-reduction [dynamic] --ffddoo--llaammbbddaa--eettaa--eexxppaannssiioonn Enable lambda eta-reduction [dynamic] --ffeexxcceessss--pprreecciissiioonn Enable excess intermediate precision [dynamic] --ffrruulleess--ooffff Switch off all rewrite rules (including rules generated by auto- matic specialisation of overloaded functions) [static] --ffiiggnnoorree--aasssseerrttss Ignore assertions in the source [dynamic] --ffiiggnnoorree--iinntteerrffaaccee--pprraaggmmaass Ignore pragmas in interface files [dynamic] --fflliibbeerraattee--ccaassee--tthhrreesshhoolldd Tweak the liberate-case optimisation (default: 10) [static] --ffoommiitt--iinntteerrffaaccee--pprraaggmmaass Don't generate interface pragmas [dynamic] --ffmmaaxx--wwoorrkkeerr--aarrggss If a worker has that many arguments, none will be unpacked any- more (default: 10) [static] --ffmmaaxx--ssiimmpplliiffiieerr--iitteerraattiioonnss Set the max iterations for the simplifier [dynamic] --ffnnoo--ssttaattee--hhaacckk Turn off the "state hack" whereby any lambda with a real-world state token as argument is considered to be single-entry. Hence OK to inline things inside it. [static] --ffnnoo--ccssee Turn off common sub-expression [dynamic] --ffnnoo--ffuullll--llaazziinneessss Turn off full laziness (floating bindings outwards). [dynamic] --ffnnoo--pprree--iinnlliinniinngg Turn off pre-inlining [static] --ffnnoo--ssttrriiccttnneessss Turn off strictness analysis [dynamic] --ffuunnbbooxx--ssttrriicctt--ffiieellddss Flatten strict constructor fields [dynamic] --ffuunnffoollddiinngg--ccrreeaattiioonn--tthhrreesshhoolldd Tweak unfolding settings [static] --ffuunnffoollddiinngg--ffuunn--ddiissccoouunntt Tweak unfolding settings [static] --ffuunnffoollddiinngg--kkeeeenneessss--ffaaccttoorr Tweak unfolding settings [static] --ffuunnffoollddiinngg--uuppddaattee--iinn--ppllaaccee Tweak unfolding settings [static] --ffuunnffoollddiinngg--uussee--tthhrreesshhoolldd Tweak unfolding settings [static] PPRROOFFIILLIINNGG OOPPTTIIOONNSS --aauuttoo Auto-add _scc_s to all exported functions [static] --aauuttoo--aallll Auto-add _scc_s to all top-level functions [static] --ccaaff--aallll Auto-add _scc_s to all CAFs [static] --pprrooff Turn on profiling [static] --ttiicckkyy Turn on ticky-ticky profiling [static] HHAASSKKEELLLL PPRREE--PPRROOCCEESSSSOORR OOPPTTIIOONNSS --FF Enable the use of a pre-processor (set with --ppggmmFF) [dynamic] CC PPRREE--PPRROOCCEESSSSOORR OOPPTTIIOONNSS --ccpppp Run the C pre-processor on Haskell source files [dynamic] --DD_s_y_m_b_o_l=_v_a_l_u_e Define a symbol in the C pre-processor [dynamic] --UU_s_y_m_b_o_l Undefine a symbol in the C pre-processor [dynamic] --II_d_i_r Add _d_i_r to the directory search list for #include files [dynamic] CC CCOOMMPPIILLEERR OOPPTTIIOONNSS --##iinncclluuddee _f_i_l_e Include _f_i_l_e when compiling the .hc file [dynamic] CCOODDEE GGEENNEERRAATTIIOONN OOPPTTIIOONNSS --ffaassmm Use the native code generator [dynamic] --ffvviiaa--CC Compile via C [dynamic] --ffnnoo--ccooddee Omit code generation [mode] LLIINNKKIINNGG OOPPTTIIOONNSS --ffPPIICC Generate position-independent code (where available) [static] --ddyynnaammiicc Use dynamic Haskell libraries (if available) [static] --ffrraammeewwoorrkk _n_a_m_e On Darwin/MacOS X only, link in the framework _n_a_m_e. This option corresponds to the --ffrraammeewwoorrkk option for Apple's Linker. [dynamic] --ffrraammeewwoorrkk--ppaatthh _n_a_m_e On Darwin/MacOS X only, add _d_i_r to the list of directories searched for frameworks. This option corresponds to the --FF op- tion for Apple's Linker. [dynamic] --ll_l_i_b Link in library _l_i_b [dynamic] --LL_d_i_r Add _d_i_r to the list of directories searched for libraries [dynamic] --mmaaiinn--iiss Set main module and function [dynamic] ----mmkk--ddllll DLL-creation mode (Windows only) [dynamic] --nnoo--hhss--mmaaiinn Don't assume this program contains main [dynamic] --nnoo--lliinnkk Omit linking [dynamic] --sspplliitt--oobbjjss Split objects (for libraries) [dynamic] --ssttaattiicc Use static Haskell libraries [static] --tthhrreeaaddeedd Use the threaded runtime [static] --ddeebbuugg Use the debugging runtime [static] RREEPPLLAACCIINNGG PPHHAASSEESS --ppggmmLL _c_m_d Use _c_m_d as the literate pre-processor [dynamic] --ppggmmPP _c_m_d Use _c_m_d as the C pre-processor (with --ccpppp only) [dynamic] --ppggmmcc _c_m_d Use _c_m_d as the C compiler [dynamic] --ppggmmmm _c_m_d Use _c_m_d as the mangler [dynamic] --ppggmmss _c_m_d Use _c_m_d as the splitter [dynamic] --ppggmmaa _c_m_d Use _c_m_d as the assembler [dynamic] --ppggmmll _c_m_d Use _c_m_d as the linker [dynamic] --ppggmmddllll _c_m_d Use _c_m_d as the DLL generator [dynamic] --ppggmmFF _c_m_d Use _c_m_d as the pre-processor (with --FF only) [dynamic] FFOORRCCIINNGG OOPPTTIIOONNSS TTOO PPAARRTTIICCUULLAARR PPHHAASSEESS --ooppttLL _o_p_t_i_o_n pass _o_p_t_i_o_n to the literate pre-processor [dynamic] --ooppttPP _o_p_t_i_o_n pass _o_p_t_i_o_n to cpp (with --ccpppp only) [dynamic] --ooppttFF _o_p_t_i_o_n pass _o_p_t_i_o_n to the custom pre-processor [dynamic] --ooppttcc _o_p_t_i_o_n pass _o_p_t_i_o_n to the C compiler [dynamic] --ooppttmm _o_p_t_i_o_n pass _o_p_t_i_o_n to the mangler [dynamic] --ooppttaa _o_p_t_i_o_n pass _o_p_t_i_o_n to the assembler [dynamic] --ooppttll _o_p_t_i_o_n pass _o_p_t_i_o_n to the linker [dynamic] --ooppttddllll _o_p_t_i_o_n pass _o_p_t_i_o_n to the DLL generator [dynamic] --ooppttddeepp _o_p_t_i_o_n pass _o_p_t_i_o_n to the dependency generator [dynamic] PPLLAATTFFOORRMM--SSPPEECCIIFFIICC OOPPTTIIOONNSS --mmoonnllyy--[[443322]]--rreeggss (x86 only) give some registers back to the C compiler [dynamic] EEXXTTEERRNNAALL CCOORREE FFIILLEE OOPPTTIIOONNSS --ffeexxtt--ccoorree Generate .hcr external Core files [static] CCOOMMPPIILLEERR DDEEBBUUGGGGIINNGG OOPPTTIIOONNSS --ddccoorree--lliinntt Turn on internal sanity checking [dynamic] --dddduummpp--aassmm Dump assembly [dynamic] --dddduummpp--bbccooss Dump interpreter byte code [dynamic] --dddduummpp--ccmmmm Dump C-- output [dynamic] --dddduummpp--ccpprraannaall Dump output from CPR analysis [dynamic] --dddduummpp--ccssee Dump CSE output [dynamic] --dddduummpp--ddeerriivv Dump deriving output [dynamic] --dddduummpp--ddss Dump desugarer output [dynamic] --dddduummpp--ffllaattCC Dump 'flat' C [dynamic] --dddduummpp--ffoorreeiiggnn Dump foreign export stubs [dynamic] --dddduummpp--iinnlliinniinnggss Dump inlining info [dynamic] --dddduummpp--ooccccuurr--aannaall Dump occurrence analysis output [dynamic] --dddduummpp--oopptt--ccmmmm Dump the results of C-- to C-- optimising passes [dynamic] --dddduummpp--ppaarrsseedd Dump parse tree [dynamic] --dddduummpp--pprreepp Dump prepared core [dynamic] --dddduummpp--rrnn Dump renamer output [dynamic] --dddduummpp--rruulleess Dump rules [dynamic] --dddduummpp--ssiimmppll Dump final simplifier output [dynamic] --dddduummpp--ssiimmppll--iitteerraattiioonnss Dump output from each simplifier iteration [dynamic] --dddduummpp--ssppeecc Dump specialiser output [dynamic] --dddduummpp--sspplliicceess Dump TH splided expressions, and what they evaluate to [dynamic] --dddduummpp--ssttgg Dump final STG [dynamic] --dddduummpp--ssttrraannaall Dump strictness analyser output [dynamic] --dddduummpp--ttcc Dump typechecker output [dynamic] --dddduummpp--ttyyppeess Dump type signatures [dynamic] --dddduummpp--wwoorrkkeerr--wwrraappppeerr Dump worker-wrapper output [dynamic] --dddduummpp--iiff--ttrraaccee Trace interface files [dynamic] --dddduummpp--ttcc--ttrraaccee Trace typechecker [dynamic] --dddduummpp--rrnn--ttrraaccee Trace renamer [dynamic] --dddduummpp--rrnn--ssttaattss Renamer stats [dynamic] --dddduummpp--ssiimmppll--ssttaattss Dump simplifier stats [dynamic] --ddpppprr--ddeebbuugg Turn on debug printing (more verbose) [static] --ddpppprr--nnoopprraaggss Don't output pragma info in dumps [static] --ddpppprr--uusseerr--lleennggtthh Set the depth for printing expressions in error msgs [static] --ddssoouurrccee--ssttaattss Dump haskell source stats [dynamic] --ddccmmmm--lliinntt C-- pass sanity checking [dynamic] --ddssttgg--lliinntt STG pass sanity checking [dynamic] --ddssttgg--ssttaattss Dump STG stats [dynamic] --ddvveerrbboossee--ccoorree22ccoorree Show output from each core-to-core pass [dynamic] --ddvveerrbboossee--ssttgg22ssttgg Show output from each STG-to-STG pass [dynamic] --ddsshhooww--ppaasssseess Print out each pass name as it happens [dynamic] --ddffaassttssttrriinngg--ssttaattss Show statistics for fast string usage when finished [dynamic] --uunnrreegg Enable unregisterised compilation [static] MMIISSCC CCOOMMPPIILLEERR OOPPTTIIOONNSS --ffnnoo--hhii--vveerrssiioonn--cchheecckk Don't complain about .hi file mismatches [static] --ddnnoo--bbllaacckk--hhoolliinngg Turn off black holing (probably doesn't work) [static] --ffnnoo--mmeetthhoodd--sshhaarriinngg Don't share specialisations of overloaded functions [static] --ffhhiissttoorryy--ssiizzee Set simplification history size [static] --ffuunnrreeggiisstteerriisseedd Unregisterised compilation (use --uunnrreegg instead) [static] --ffnnoo--aassmm--mmaanngglliinngg Turn off assembly mangling (use --uunnrreegg instead) [dynamic] --ffnnoo--pprriinntt--bbiinndd--rreessuulltt Turn off printing of binding results in GHCi [dynamic] FFIILLEESS _/_6_4_p_l_a_y_p_e_n_/_b_u_i_l_d_b_o_t_/_x_8_6___6_4_-_l_i_n_u_x_- _h_e_a_d_/_b_u_i_l_d_/_g_h_c_-_6_._7_._2_0_0_7_0_3_0_9_/_l_i_b_/_x_8_6___6_4_-_u_n_k_n_o_w_n_-_l_i_n_u_x CCOOPPYYRRIIGGHHTT Copyright 2002, The University Court of the University of Glasgow. All rights reserved. AAUUTTHHOORR This manual page was generated from the XML documentation of GHC with blood, sweat, tears and a breaks-if-you-look-at-it-the-wrong-way XSL stylesheet originally written by Michael Weber <michaelw@debian.org> for the Debian GNU/Linux system (but may be used by others). Glasgow FP Suite 2002-10-25 GHC(1)