From HaskellWiki
< Yhc
Revision as of 15:32, 30 July 2007 by Kevin Reid (talk | contribs) (all -<option> changed to --<option>)
Jump to navigation Jump to search

Command syntax:

 yhc [options] file

file: Name of the source file to compile, i.e. main.hs options: a list of options

 --flag           turn on an option
 --noflag         turn off an option
 --flag value     pass a value as the flag

Path Options:

 -I --includes str   Include directories
 -P --preludes str   Prelude directories
 -d --dst str        destination path for generated bytecode files (default=.)
 -i --hidst str      destinated path for generated .hi file (default=.)
 -w --wrapdst str    destination path for generated FFI wrapper (default=.)
    --hide           hide object files (default=off)

Generation Options:

    --hat            compile with Hat debugging support (default=off)
    --dotnet         Generate .NET IL code (default=off)
 -W --genwrapper     generate FFI wrapper (default=off)
    --hi-suffix str  change the default ".hi" suffix (default=hi)
    --exportall      export all identifiers from a module, despite what the 
                     export list says (default=off)

Action Flags:

    --viewcore str   View Core file (.ycr)
 -c --compile        Compile one file only (default=off)

Compilation Options:

    --redefine       Don't complain if redefining an imported identifier 
    --unix           Use unix file names (default=on)
    --unlit          Unliterate the source code (default=off)
    --cpp            Pre-process the file first (default=off)
    --prelude        Keep prelude definitions in interface file (default=off)
    --lib            Compiling a lib, don't complain if importing modules with 
                     names that differs from their filename. (default=off)
    --unifyhack      Enable nasty type hack that's needed to make the prelude 
                     compile ... (default=off)

Compliance Options:

    --underscore     Enable H'98 underscore-is-lower-case (default=off)
    --puns           Enable pre-98 named-field puns (default=on)
    --98             Haskell 98 compliance (default=off)

Help Options:

 -v --version        Show version information (default=off)
 -? --help           Show all options and useage information (default=off)

Core Options:

    --core           generate a .ycr binary file (default=off)
    --showcore       show the Core language (default=off)
    --linkcore       generate a linked .yca binary file (default=off)

Debug Options:

    --lex            show lexical input (default=off)
    --parse          show syntax tree after parser (default=off)
    --need           show need table before import (default=off)
    --ineed          show need table after import (default=off)
    --irename        show rename table after import (default=off)
    --iineed         show need table between all import files (default=off)
    --iirename       show rename table between all imports (default=off)
    --rename         show syntax tree after rename (default=off)
    --derive         show syntax tree after derive (default=off)
    --remove         show syntax tree after fields are removed (translated into 
                     selectors) (default=off)
    --scc            show syntax tree after splitting into strongly connected 
                     groups (default=off)
    --type           show syntax tree after type check (default=off)
    --fixsyntax      show syntax tree after removing newtype constructors and 
                     fixing Class.Type.metod (default=off)
    --lift           show syntax tree after lambda lifting (default=off)
    --case           show stg tree after simplification of patterns 
    --prim           show stg tree after inserting primitive functions 
    --bcodecompile   show B code after compile (default=off)
    --bcodemem       show B code after heap usage analysis (default=off)
    --bcodeflatten   show B code after flattening (default=off)
    --bcoderel       show B code after converting to relative jumps 
    --keepcase       Don't lift case, we fix those later (default=off)
    --arity          show stg tree after arity (default=off)
    --ibound         show symbol table after import (default=off)
    --iibound        show symbol table between all import files (default=off)
    --rbound         show symbol table after rename (default=off)
    --dbound         show symbol table after derive (default=off)
    --pbound         show symbol table after inserting primitive functions 
    --ebound         show symbol table after extract (default=off)
    --tbound         show symbol table after type check (default=off)
    --fsbound        show symbol table after adding Class.Type.method info 
    --lbound         show symbol table after lambda lifting (default=off)
    --cbound         show symbol table after simplification of pattern 
    --abound         show symbol table after only atoms in applications 
    --import         print name of imported files (default=off)
    --depend         print imported identifiers that are used (not even alpha 
                     yet) (default=off)
    --free           show stg tree with explicitly free variables (default=off)
    --atom           show stg tree after only atoms in applications 
    --funnames       insert position and name of functions in the code 
    --ilex           show lexical input (default=off)
    --report-imports show only imports actually used (default=off)
    --showtype       report type of "main" (default=off)
    --showwidth num  set width for showing intermediate program (default=80)
    --showindent num set indentation for nesting (default=2)
    --showqualified  show qualified ids as far as possible (default=on)

Environment variables:

    YHC_BASE_PATH    The path to the Yhc compiler base directory
    PATH             The search path is used to find the compiler,
                     if YHC_BASE_PATH is not specified