module DDC.Main.Help where import qualified DDC.Version as Version -- | What to print when we have no input files. hello :: String hello = unlines [ "ddc: no input files" , "For usage information, try the -help option." ] -- | The command-line help page. --- -- The following internal debugging flags are also accepted but do not appear -- in the help page. -- -- -taint-avoid-type-checks Avoid type checking if possible. -- Exactly how much checking is avoided depends -- on the compilation mode. help :: String help = unlines [ Version.splash , "" , "General" , " -help Display this help." , " -version Display the version string." , "" , "Language" , " -infer Infer types in core files. (default) (negates -recon)" , " -recon Reconstruct types in core files. (negates -infer)" , "" , "Compilation" , " -make FILE Compile a module into an executable file." , " -c, -compile FILE Compile a module into an object file." , " -build FILE Build a library or executable defined in a .build file" , "" , " -o, -output FILE Redirect output to this file." , " -output-dir DIR Redirect output to this directory." , "" , " -fvia-llvm Compile via the LLVM backend (default)" , " -fvia-c Compile via the C backend." , "" , "Checking and Loading" , " -parse FILE Parse a module." , " -check FILE Parse and type check a module." , " -load FILE Parse, type check and desugar a module to the Core IR." , "" , "Conversion" , " -to-salt FILE Convert a module to Disciple Core Salt." , " -to-llvm FILE Convert a module to LLVM code." , " -to-c FILE Convert a module to C code." , "" , "Configuration" , " -basedir DIR Path to the runtime and base library code." , " -print-basedir Print directory holding the runtime and base libraries." , " -print-builder Print external builder info for this platform." , " -run-heap BYTES Size of the fixed runtime heap. (65536)" , " -run-link-static Force the runtime to be linked statically." , "" , "Generic Transforms, that work on all fragments." , " To uses the transforms, set the desired one with -trans, then -load a file." , " -O0 No optimisations. (default)" , " -O, -O1 Do standard optimisations." , "" , " -trans TRANS Set the transformation to use with -load." , " -with FILE Use this module for inliner templates with -load." , "" , " TRANS ::= " , " { TRANS } Parenthesis." , " fix N TRANS Transform to a fixpoint, or bail out after N iterations." , " TRANS; TRANS Sequence two transforms." , " Id Return the original program unharmed." , " Anonymize Anonymize names to deBruijn form." , " Beta Perform beta-reduction for value arguments." , " BetaLets ... introducing new let-bindings for redex arguments." , " Bubble Float casts outwards, and combine similar ones." , " Elaborate Introduce default witnesses for unconstrained regions." , " Flatten Flatten nested let-bindings." , " Forward Move let-bindings forward into their use sites." , " Inline MODULE[NAME..] Perform inlining. Use '-with' to add source modules." , " Lambdas Perform lambda-lifting." , " Namify Introduce fresh names for deBruijn binders." , " Prune Erase unused, ineffectual let-bindings." , " Rewrite Perform rule based rewriting." , " Snip Introduce let-bindings for nested applications." , " SnipOver ... and over-applications." , "" , "Core Tetra Tranfsorms (that work on .dct files only)" , " -tetra-suspend FILE Eta-expand around suspended expressions." , " -tetra-curry FILE Reify function closures and insert function call prims." , " -tetra-boxing FILE Manage boxing/unboxing in prep for conversion to Core Salt." , "" , "Core Flow Transforms (that work on .dcf files only)" , " -flow-prep FILE Prepare a module for lowering." , " -flow-lower FILE Lower functions to loop code." , " -flow-concretize FILE Rewrite primops to use concrete series lengths." , " -flow-melt FILE Melt compound data structures." , " -flow-wind FILE Wind loop primops into tail recursive loops." , " -flow-thread FILE Thread state token through program." , "" , "Debugging" , " -dump Dump intermediate representations." , " -keep-ll-files Keep intermediate .ll files." , " -keep-c-files Keep intermediate .c files." , " -keep-s-files Keep intermediate .s files." ]