mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-26 22:06:35 +01:00
95db5616a1
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
2338 lines
84 KiB
Groff
2338 lines
84 KiB
Groff
.\" Man page generated from reStructuredText.
|
|
.
|
|
.TH "GHC" "1" "Feb 04, 2021" "8.10.4" "Glasgow Haskell Compiler"
|
|
.SH NAME
|
|
ghc \- the Glasgow Haskell Compiler
|
|
.
|
|
.nr rst2man-indent-level 0
|
|
.
|
|
.de1 rstReportMargin
|
|
\\$1 \\n[an-margin]
|
|
level \\n[rst2man-indent-level]
|
|
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
-
|
|
\\n[rst2man-indent0]
|
|
\\n[rst2man-indent1]
|
|
\\n[rst2man-indent2]
|
|
..
|
|
.de1 INDENT
|
|
.\" .rstReportMargin pre:
|
|
. RS \\$1
|
|
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
|
. nr rst2man-indent-level +1
|
|
.\" .rstReportMargin post:
|
|
..
|
|
.de UNINDENT
|
|
. RE
|
|
.\" indent \\n[an-margin]
|
|
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.nr rst2man-indent-level -1
|
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
|
..
|
|
.SH SYNOPSIS
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
ghc [option|filename]
|
|
ghci [option|filename]
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.SH DESCRIPTION
|
|
.sp
|
|
This manual page documents briefly the \fBghc\fP and \fBghci\fP commands. Note that
|
|
\fBghci\fP is not yet available on all architectures. Extensive documentation is
|
|
available in various other formats including \fI\%PDF\fP and \fI\%HTML\fP\&.
|
|
.sp
|
|
Each of GHC\(aqs command line options is classified as either \fIstatic\fP or
|
|
\fIdynamic\fP\&. A static flag may only be specified on the command line, whereas a
|
|
dynamic flag may also be given in an \fBOPTIONS\fP pragma in a source file or
|
|
set from the GHCi command\-line with \fB:set\fP .
|
|
.sp
|
|
As a rule of thumb, all the language options are dynamic, as are the
|
|
warning options and the debugging options.
|
|
.sp
|
|
The rest are static, with the notable exceptions of
|
|
\fB\-v\fP, \fB\-cpp\fP, \fB\-fasm\fP, \fB\-fvia\-C\fP, \fB\-fllvm\fP, and
|
|
\fB\-#include\fP\&.
|
|
The OPTIONS sections lists the status of each flag.
|
|
.sp
|
|
Common suffixes of file names for Haskell are:
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\&.hs\fP
|
|
Haskell source code; preprocess, compile
|
|
.TP
|
|
.B \fB\&.lhs\fP
|
|
literate Haskell source; unlit, preprocess, compile
|
|
.TP
|
|
.B \fB\&.hi\fP
|
|
Interface file; contains information about exported symbols
|
|
.TP
|
|
.B \fB\&.hc\fP
|
|
intermediate C files
|
|
.TP
|
|
.B \fB\&.⟨way⟩_o\fP
|
|
object files for "way" ⟨way⟩; common ways are:
|
|
.INDENT 7.0
|
|
.TP
|
|
.B \fBdyn\fP
|
|
dynamically\-linked
|
|
.TP
|
|
.B \fBp\fP
|
|
built with profiling
|
|
.UNINDENT
|
|
.TP
|
|
.B \fB\&.⟨way⟩_hi\fP
|
|
interface files for "way" ⟨way⟩; common ways are:
|
|
.UNINDENT
|
|
.SH OPTIONS
|
|
.TP
|
|
.B Code generation
|
|
\fB\-dynamic\-too\fP \fB\-fasm\fP \fB\-fllvm\fP \fB\-fbyte\-code\fP \fB\-fexternal\-dynamic\-refs\fP \fB\-fllvm\fP \fB\-fasm\fP \fB\-fno\-code\fP \fB\-fobject\-code\fP \fB\-fPIC\fP \fB\-fPIE\fP \fB\-fwrite\-interface\fP
|
|
.TP
|
|
.B Debugging the compiler
|
|
\fB\-dcmm\-lint\fP \fB\-dcore\-lint\fP \fB\-ddump\-asm\fP \fB\-ddump\-asm\-expanded\fP \fB\-ddump\-asm\-liveness\fP \fB\-ddump\-asm\-native\fP \fB\-ddump\-asm\-regalloc\fP \fB\-ddump\-asm\-regalloc\-stages\fP \fB\-ddump\-asm\-stats\fP \fB\-ddump\-bcos\fP \fB\-ddump\-cfg\-weights\fP \fB\-ddump\-cmm\fP \fB\-ddump\-cmm\-caf\fP \fB\-ddump\-cmm\-cbe\fP \fB\-ddump\-cmm\-cfg\fP \fB\-ddump\-cmm\-cps\fP \fB\-ddump\-cmm\-from\-stg\fP \fB\-ddump\-cmm\-info\fP \fB\-ddump\-cmm\-proc\fP \fB\-ddump\-cmm\-procmap\fP \fB\-ddump\-cmm\-raw\fP \fB\-ddump\-cmm\-sink\fP \fB\-ddump\-cmm\-sp\fP \fB\-ddump\-cmm\-split\fP \fB\-ddump\-cmm\-switch\fP \fB\-ddump\-cmm\-verbose\fP \fB\-ddump\-cmm\-verbose\-by\-proc\fP \fB\-ddump\-core\-stats\fP \fB\-ddump\-cse\fP \fB\-ddump\-deriv\fP \fB\-ddump\-ds\fP \fB\-ddump\-ds\-preopt\fP \fB\-ddump\-ec\-trace\fP \fB\-ddump\-file\-prefix=⟨str⟩\fP \fB\-ddump\-foreign\fP \fB\-ddump\-hpc\fP \fB\-ddump\-if\-trace\fP \fB\-ddump\-inlinings\fP \fB\-ddump\-json\fP \fB\-ddump\-llvm\fP \fB\-ddump\-mod\-map\fP \fB\-ddump\-occur\-anal\fP \fB\-ddump\-opt\-cmm\fP \fB\-ddump\-parsed\fP \fB\-ddump\-parsed\-ast\fP \fB\-ddump\-prep\fP \fB\-ddump\-rn\fP \fB\-ddump\-rn\-ast\fP \fB\-ddump\-rn\-stats\fP \fB\-ddump\-rn\-trace\fP \fB\-ddump\-rtti\fP \fB\-ddump\-rule\-firings\fP \fB\-ddump\-rule\-rewrites\fP \fB\-ddump\-rules\fP \fB\-ddump\-simpl\fP \fB\-ddump\-simpl\-iterations\fP \fB\-ddump\-simpl\-stats\fP \fB\-ddump\-spec\fP \fB\-ddump\-splices\fP \fB\-ddump\-stg\fP \fB\-ddump\-stg\-final\fP \fB\-ddump\-stg\-unarised\fP \fB\-ddump\-str\-signatures\fP \fB\-ddump\-stranal\fP \fB\-ddump\-tc\fP \fB\-ddump\-tc\-ast\fP \fB\-ddump\-tc\-trace\fP \fB\-ddump\-ticked\fP \fB\-ddump\-timings\fP \fB\-ddump\-to\-file\fP \fB\-ddump\-types\fP \fB\-ddump\-worker\-wrapper\fP \fB\-dfaststring\-stats\fP \fB\-dhex\-word\-literals\fP \fB\-dinitial\-unique=⟨s⟩\fP \fB\-dinline\-check=⟨str⟩\fP \fB\-dno\-debug\-output\fP \fB\-ddebug\-output\fP \fB\-dno\-typeable\-binds\fP \fB\-dppr\-case\-as\-let\fP \fB\-dppr\-cols=⟨n⟩\fP \fB\-dppr\-debug\fP \fB\-dppr\-user\-length\fP \fB\-drule\-check=⟨str⟩\fP \fB\-dshow\-passes\fP \fB\-dstg\-lint\fP \fB\-dsuppress\-all\fP \fB\-dsuppress\-coercions\fP \fB\-dsuppress\-idinfo\fP \fB\-dsuppress\-module\-prefixes\fP \fB\-dsuppress\-stg\-free\-vars\fP \fB\-dsuppress\-ticks\fP \fB\-dsuppress\-timestamps\fP \fB\-dsuppress\-type\-applications\fP \fB\-dsuppress\-type\-signatures\fP \fB\-dsuppress\-unfoldings\fP \fB\-dsuppress\-uniques\fP \fB\-dsuppress\-var\-kinds\fP \fB\-dth\-dec\-file\fP \fB\-dunique\-increment=⟨i⟩\fP \fB\-dverbose\-core2core\fP \fB\-dverbose\-stg2stg\fP \fB\-falignment\-sanitisation\fP \fB\-fcatch\-bottoms\fP \fB\-fllvm\-fill\-undef\-with\-garbage\fP \fB\-fproc\-alignment\fP \fB\-g\fP \fB\-g⟨n⟩\fP
|
|
.TP
|
|
.B C pre\-processor
|
|
\fB\-cpp\fP \fB\-D⟨symbol⟩[=⟨value⟩]\fP \fB\-U⟨symbol⟩\fP \fB\-I⟨dir⟩\fP \fB\-U⟨symbol⟩\fP
|
|
.TP
|
|
.B Finding imports
|
|
\fB\-i\fP \fB\-i⟨dir⟩[:⟨dir⟩]*\fP
|
|
.TP
|
|
.B Interactive mode
|
|
\fB\-fbreak\-on\-error\fP \fB\-fno\-break\-on\-error\fP \fB\-fbreak\-on\-exception\fP \fB\-fno\-break\-on\-exception\fP \fB\-fghci\-hist\-size=⟨n⟩\fP \fB\-fghci\-leak\-check\fP \fB\-fno\-ghci\-leak\-check\fP \fB\-flocal\-ghci\-history\fP \fB\-fno\-local\-ghci\-history\fP \fB\-fno\-it\fP \fB\-fno\-no\-it\fP \fB\-fprint\-bind\-result\fP \fB\-fno\-print\-bind\-result\fP \fB\-fprint\-evld\-with\-show\fP \fB\-fshow\-loaded\-modules\fP \fB\-ghci\-script\fP \fB\-ignore\-dot\-ghci\fP \fB\-interactive\-print ⟨name⟩\fP
|
|
.TP
|
|
.B Interface files
|
|
\fB\-\-show\-iface ⟨file⟩\fP \fB\-ddump\-hi\fP \fB\-ddump\-hi\-diffs\fP \fB\-ddump\-minimal\-imports\fP
|
|
.TP
|
|
.B Keeping intermediate files
|
|
\fB\-keep\-hc\-file\fP \fB\-keep\-hc\-files\fP \fB\-keep\-hi\-files\fP \fB\-no\-keep\-hi\-files\fP \fB\-keep\-hscpp\-file\fP \fB\-keep\-hscpp\-files\fP \fB\-keep\-llvm\-file\fP \fB\-keep\-llvm\-files\fP \fB\-keep\-o\-files\fP \fB\-no\-keep\-o\-files\fP \fB\-keep\-s\-file\fP \fB\-keep\-s\-files\fP \fB\-keep\-tmp\-files\fP
|
|
.TP
|
|
.B Language options
|
|
\fB\-fno\-safe\-haskell\fP \fB\-fsort\-by\-size\-hole\-fits\fP \fB\-fno\-sort\-by\-size\-hole\-fits\fP \fB\-fsort\-by\-subsumption\-hole\-fits\fP \fB\-fno\-sort\-by\-subsumption\-hole\-fits\fP \fB\-Winferred\-safe\-imports\fP \fB\-Wno\-inferred\-safe\-imports\fP \fB\-Wmissing\-safe\-haskell\-mode\fP \fB\-Wno\-missing\-safe\-haskell\-mode\fP \fB\-XAllowAmbiguousTypes\fP \fB\-XApplicativeDo\fP \fB\-XArrows\fP \fB\-XBangPatterns\fP \fB\-XBinaryLiterals\fP \fB\-XBlockArguments\fP \fB\-XCApiFFI\fP \fB\-XConstrainedClassMethods\fP \fB\-XConstraintKinds\fP \fB\-XCPP\fP \fB\-XCUSKs\fP \fB\-XDataKinds\fP \fB\-XDatatypeContexts\fP \fB\-XDefaultSignatures\fP \fB\-XDeriveAnyClass\fP \fB\-XDeriveDataTypeable\fP \fB\-XDeriveFoldable\fP \fB\-XDeriveFunctor\fP \fB\-XDeriveGeneric\fP \fB\-XDeriveLift\fP \fB\-XDeriveTraversable\fP \fB\-XDerivingStrategies\fP \fB\-XDerivingVia\fP \fB\-XDisambiguateRecordFields\fP \fB\-XDuplicateRecordFields\fP \fB\-XEmptyCase\fP \fB\-XEmptyDataDecls\fP \fB\-XEmptyDataDeriving\fP \fB\-XExistentialQuantification\fP \fB\-XExplicitForAll\fP \fB\-XExplicitNamespaces\fP \fB\-XExtendedDefaultRules\fP \fB\-XFlexibleContexts\fP \fB\-XFlexibleInstances\fP \fB\-XForeignFunctionInterface\fP \fB\-XFunctionalDependencies\fP \fB\-XGADTs\fP \fB\-XGADTSyntax\fP \fB\-XGeneralisedNewtypeDeriving\fP \fB\-XGeneralizedNewtypeDeriving\fP \fB\-XHaskell2010\fP \fB\-XHaskell98\fP \fB\-XHexFloatLiterals\fP \fB\-XImplicitParams\fP \fB\-XImportQualifiedPost\fP \fB\-XImpredicativeTypes\fP \fB\-XIncoherentInstances\fP \fB\-XInstanceSigs\fP \fB\-XInterruptibleFFI\fP \fB\-XKindSignatures\fP \fB\-XLambdaCase\fP \fB\-XLiberalTypeSynonyms\fP \fB\-XMagicHash\fP \fB\-XMonadComprehensions\fP \fB\-XMonadFailDesugaring\fP \fB\-XMonoLocalBinds\fP \fB\-XMultiParamTypeClasses\fP \fB\-XMultiWayIf\fP \fB\-XNamedFieldPuns\fP \fB\-XNamedWildCards\fP \fB\-XNegativeLiterals\fP \fB\-XNoImplicitPrelude\fP \fB\-XNoMonomorphismRestriction\fP \fB\-XNondecreasingIndentation\fP \fB\-XNoPatternGuards\fP \fB\-XNoTraditionalRecordSyntax\fP \fB\-XNPlusKPatterns\fP \fB\-XNullaryTypeClasses\fP \fB\-XNumDecimals\fP \fB\-XNumericUnderscores\fP \fB\-XOverlappingInstances\fP \fB\-XOverloadedLabels\fP \fB\-XOverloadedLists\fP \fB\-XOverloadedStrings\fP \fB\-XPackageImports\fP \fB\-XParallelListComp\fP \fB\-XPartialTypeSignatures\fP \fB\-XPatternSynonyms\fP \fB\-XPolyKinds\fP \fB\-XPostfixOperators\fP \fB\-XQuantifiedConstraints\fP \fB\-XQuasiQuotes\fP \fB\-XRank2Types\fP \fB\-XRankNTypes\fP \fB\-XRebindableSyntax\fP \fB\-XRecordWildCards\fP \fB\-XRecursiveDo\fP \fB\-XRoleAnnotations\fP \fB\-XSafe\fP \fB\-XScopedTypeVariables\fP \fB\-XStandaloneDeriving\fP \fB\-XStandaloneKindSignatures\fP \fB\-XStarIsType\fP \fB\-XStaticPointers\fP \fB\-XStrict\fP \fB\-XStrictData\fP \fB\-XTemplateHaskell\fP \fB\-XTemplateHaskellQuotes\fP \fB\-XTransformListComp\fP \fB\-XTrustworthy\fP \fB\-XTupleSections\fP \fB\-XTypeApplications\fP \fB\-XTypeFamilies\fP \fB\-XTypeFamilyDependencies\fP \fB\-XTypeInType\fP \fB\-XTypeOperators\fP \fB\-XTypeSynonymInstances\fP \fB\-XUnboxedSums\fP \fB\-XUnboxedTuples\fP \fB\-XUndecidableInstances\fP \fB\-XUndecidableSuperClasses\fP \fB\-XUnicodeSyntax\fP \fB\-XUnliftedFFITypes\fP \fB\-XUnliftedNewtypes\fP \fB\-XUnsafe\fP \fB\-XViewPatterns\fP
|
|
.TP
|
|
.B Linking options
|
|
\fB\-c\fP \fB\-debug\fP \fB\-dylib\-install\-name ⟨path⟩\fP \fB\-dynamic\fP \fB\-dynload\fP \fB\-eventlog\fP \fB\-fno\-embed\-manifest\fP \fB\-fno\-gen\-manifest\fP \fB\-fno\-shared\-implib\fP \fB\-framework ⟨name⟩\fP \fB\-framework\-path ⟨dir⟩\fP \fB\-fwhole\-archive\-hs\-libs\fP \fB\-keep\-cafs\fP \fB\-L ⟨dir⟩\fP \fB\-l ⟨lib⟩\fP \fB\-main\-is ⟨thing⟩\fP \fB\-no\-hs\-main\fP \fB\-no\-rtsopts\-suggestions\fP \fB\-package ⟨name⟩\fP \fB\-pie\fP \fB\-rdynamic\fP \fB\-rtsopts[=⟨none|some|all|ignore|ignoreAll⟩]\fP \fB\-shared\fP \fB\-split\-sections\fP \fB\-static\fP \fB\-staticlib\fP \fB\-threaded\fP \fB\-with\-rtsopts=⟨opts⟩\fP
|
|
.TP
|
|
.B Miscellaneous options
|
|
\fB\-fexternal\-interpreter\fP \fB\-fglasgow\-exts\fP \fB\-fno\-glasgow\-exts\fP \fB\-ghcversion\-file ⟨path to ghcversion.h⟩\fP \fB\-H ⟨size⟩\fP \fB\-j[⟨n⟩]\fP
|
|
.TP
|
|
.B Modes of operation
|
|
\fB\-\-frontend ⟨module⟩\fP \fB\-\-help\fP \fB\-?\fP \fB\-\-info\fP \fB\-\-interactive\fP \fB\-\-make\fP \fB\-\-mk\-dll\fP \fB\-\-numeric\-version\fP \fB\-\-print\-libdir\fP \fB\-\-show\-iface ⟨file⟩\fP \fB\-\-show\-options\fP \fB\-\-supported\-extensions\fP \fB\-\-supported\-languages\fP \fB\-\-version\fP \fB\-V\fP \fB\-e ⟨expr⟩\fP \fB\-M\fP
|
|
.TP
|
|
.B Individual optimizations
|
|
\fB\-fasm\-shortcutting\fP \fB\-fno\-asm\-shortcutting\fP \fB\-fbinary\-blob\-threshold=⟨n⟩\fP \fB\-fblock\-layout\-cfg\fP \fB\-fno\-block\-layout\-cfg\fP \fB\-fblock\-layout\-weightless\fP \fB\-fno\-block\-layout\-weightless\fP \fB\-fblock\-layout\-weights\fP \fB\-fcall\-arity\fP \fB\-fno\-call\-arity\fP \fB\-fcase\-folding\fP \fB\-fno\-case\-folding\fP \fB\-fcase\-merge\fP \fB\-fno\-case\-merge\fP \fB\-fcmm\-elim\-common\-blocks\fP \fB\-fno\-cmm\-elim\-common\-blocks\fP \fB\-fcmm\-sink\fP \fB\-fno\-cmm\-sink\fP \fB\-fcpr\-anal\fP \fB\-fno\-cpr\-anal\fP \fB\-fcross\-module\-specialise\fP \fB\-fno\-cross\-module\-specialise\fP \fB\-fcse\fP \fB\-fno\-cse\fP \fB\-fdicts\-cheap\fP \fB\-fno\-dicts\-cheap\fP \fB\-fdicts\-strict\fP \fB\-fno\-dicts\-strict\fP \fB\-fdmd\-tx\-dict\-sel\fP \fB\-fno\-dmd\-tx\-dict\-sel\fP \fB\-fdo\-eta\-reduction\fP \fB\-fno\-do\-eta\-reduction\fP \fB\-fdo\-lambda\-eta\-expansion\fP \fB\-fno\-do\-lambda\-eta\-expansion\fP \fB\-feager\-blackholing\fP \fB\-fenable\-rewrite\-rules\fP \fB\-fno\-enable\-rewrite\-rules\fP \fB\-fexcess\-precision\fP \fB\-fno\-excess\-precision\fP \fB\-fexitification\fP \fB\-fno\-exitification\fP \fB\-fexpose\-all\-unfoldings\fP \fB\-fno\-expose\-all\-unfoldings\fP \fB\-ffloat\-in\fP \fB\-fno\-float\-in\fP \fB\-ffull\-laziness\fP \fB\-fno\-full\-laziness\fP \fB\-ffun\-to\-thunk\fP \fB\-fno\-fun\-to\-thunk\fP \fB\-fignore\-asserts\fP \fB\-fno\-ignore\-asserts\fP \fB\-fignore\-interface\-pragmas\fP \fB\-fno\-ignore\-interface\-pragmas\fP \fB\-flate\-dmd\-anal\fP \fB\-fno\-late\-dmd\-anal\fP \fB\-flate\-specialise\fP \fB\-fno\-late\-specialise\fP \fB\-fliberate\-case\fP \fB\-fno\-liberate\-case\fP \fB\-fliberate\-case\-threshold=⟨n⟩\fP \fB\-fno\-liberate\-case\-threshold\fP \fB\-fllvm\-pass\-vectors\-in\-regs\fP \fB\-fno\-llvm\-pass\-vectors\-in\-regs\fP \fB\-floopification\fP \fB\-fno\-loopification\fP \fB\-fmax\-inline\-alloc\-size=⟨n⟩\fP \fB\-fmax\-inline\-memcpy\-insns=⟨n⟩\fP \fB\-fmax\-inline\-memset\-insns=⟨n⟩\fP \fB\-fmax\-simplifier\-iterations=⟨n⟩\fP \fB\-fmax\-uncovered\-patterns=⟨n⟩\fP \fB\-fmax\-worker\-args=⟨n⟩\fP \fB\-fno\-opt\-coercion\fP \fB\-fno\-pre\-inlining\fP \fB\-fno\-state\-hack\fP \fB\-fomit\-interface\-pragmas\fP \fB\-fno\-omit\-interface\-pragmas\fP \fB\-fomit\-yields\fP \fB\-fno\-omit\-yields\fP \fB\-foptimal\-applicative\-do\fP \fB\-fno\-optimal\-applicative\-do\fP \fB\-fpedantic\-bottoms\fP \fB\-fno\-pedantic\-bottoms\fP \fB\-fregs\-graph\fP \fB\-fno\-regs\-graph\fP \fB\-fregs\-iterative\fP \fB\-fno\-regs\-iterative\fP \fB\-fsimpl\-tick\-factor=⟨n⟩\fP \fB\-fsimplifier\-phases=⟨n⟩\fP \fB\-fsolve\-constant\-dicts\fP \fB\-fno\-solve\-constant\-dicts\fP \fB\-fspec\-constr\fP \fB\-fno\-spec\-constr\fP \fB\-fspec\-constr\-count=⟨n⟩\fP \fB\-fno\-spec\-constr\-count\fP \fB\-fspec\-constr\-keen\fP \fB\-fno\-spec\-constr\-keen\fP \fB\-fspec\-constr\-threshold=⟨n⟩\fP \fB\-fno\-spec\-constr\-threshold\fP \fB\-fspecialise\fP \fB\-fno\-specialise\fP \fB\-fspecialise\-aggressively\fP \fB\-fno\-specialise\-aggressively\fP \fB\-fstatic\-argument\-transformation\fP \fB\-fno\-static\-argument\-transformation\fP \fB\-fstg\-cse\fP \fB\-fno\-stg\-cse\fP \fB\-fstg\-lift\-lams\fP \fB\-fno\-stg\-lift\-lams\fP \fB\-fstg\-lift\-lams\-known\fP \fB\-fno\-stg\-lift\-lams\-known\fP \fB\-fstg\-lift\-lams\-non\-rec\-args\fP \fB\-fno\-stg\-lift\-lams\-non\-rec\-args\-any\fP \fB\-fstg\-lift\-lams\-rec\-args\fP \fB\-fno\-stg\-lift\-lams\-rec\-args\-any\fP \fB\-fstrictness\fP \fB\-fno\-strictness\fP \fB\-fstrictness\-before=⟨n⟩\fP \fB\-funbox\-small\-strict\-fields\fP \fB\-fno\-unbox\-small\-strict\-fields\fP \fB\-funbox\-strict\-fields\fP \fB\-fno\-unbox\-strict\-fields\fP \fB\-funfolding\-creation\-threshold=⟨n⟩\fP \fB\-funfolding\-dict\-discount=⟨n⟩\fP \fB\-funfolding\-fun\-discount=⟨n⟩\fP \fB\-funfolding\-keeness\-factor=⟨n⟩\fP \fB\-funfolding\-use\-threshold=⟨n⟩\fP \fB\-fworker\-wrapper\fP
|
|
.TP
|
|
.B Optimization levels
|
|
\fB\-O\fP \fB\-O1\fP \fB\-O0\fP \fB\-O0\fP \fB\-O2\fP \fB\-O0\fP \fB\-O⟨n⟩\fP \fB\-O0\fP
|
|
.TP
|
|
.B Package options
|
|
\fB\-clear\-package\-db\fP \fB\-distrust ⟨pkg⟩\fP \fB\-distrust\-all\-packages\fP \fB\-fpackage\-trust\fP \fB\-global\-package\-db\fP \fB\-hide\-all\-packages\fP \fB\-hide\-package ⟨pkg⟩\fP \fB\-ignore\-package ⟨pkg⟩\fP \fB\-no\-auto\-link\-packages\fP \fB\-no\-global\-package\-db\fP \fB\-no\-user\-package\-db\fP \fB\-package ⟨pkg⟩\fP \fB\-package\-db ⟨file⟩\fP \fB\-package\-env ⟨file⟩|⟨name⟩\fP \fB\-package\-id ⟨unit\-id⟩\fP \fB\-this\-unit\-id ⟨unit\-id⟩\fP \fB\-trust ⟨pkg⟩\fP \fB\-user\-package\-db\fP
|
|
.TP
|
|
.B Phases of compilation
|
|
\fB\-C\fP \fB\-c\fP \fB\-E\fP \fB\-F\fP \fB\-S\fP \fB\-x ⟨suffix⟩\fP
|
|
.TP
|
|
.B Overriding external programs
|
|
\fB\-pgma ⟨cmd⟩\fP \fB\-pgmc ⟨cmd⟩\fP \fB\-pgmdll ⟨cmd⟩\fP \fB\-pgmF ⟨cmd⟩\fP \fB\-pgmi ⟨cmd⟩\fP \fB\-pgminstall_name_tool ⟨cmd⟩\fP \fB\-pgmL ⟨cmd⟩\fP \fB\-pgml ⟨cmd⟩\fP \fB\-pgmlc ⟨cmd⟩\fP \fB\-pgmlibtool ⟨cmd⟩\fP \fB\-pgmlm ⟨cmd⟩\fP \fB\-pgmlo ⟨cmd⟩\fP \fB\-pgmotool ⟨cmd⟩\fP \fB\-pgmP ⟨cmd⟩\fP \fB\-pgms ⟨cmd⟩\fP \fB\-pgmwindres ⟨cmd⟩\fP
|
|
.TP
|
|
.B Phase\-specific options
|
|
\fB\-opta ⟨option⟩\fP \fB\-optc ⟨option⟩\fP \fB\-optcxx ⟨option⟩\fP \fB\-optdll ⟨option⟩\fP \fB\-optF ⟨option⟩\fP \fB\-opti ⟨option⟩\fP \fB\-optL ⟨option⟩\fP \fB\-optl ⟨option⟩\fP \fB\-optlc ⟨option⟩\fP \fB\-optlm ⟨option⟩\fP \fB\-optlo ⟨option⟩\fP \fB\-optP ⟨option⟩\fP \fB\-optwindres ⟨option⟩\fP \fB\-pgmc\-supports\-no\-pie\fP
|
|
.TP
|
|
.B Platform\-specific options
|
|
\fB\-mbmi2\fP \fB\-msse2\fP \fB\-msse4.2\fP
|
|
.TP
|
|
.B Compiler plugins
|
|
\fB\-fclear\-plugins\fP \fB\-fplugin\-opt=⟨module⟩:⟨args⟩\fP \fB\-fplugin\-trustworthy\fP \fB\-fplugin=⟨module⟩\fP \fB\-hide\-all\-plugin\-packages\fP \fB\-plugin\-package ⟨pkg⟩\fP \fB\-plugin\-package\-id ⟨pkg\-id⟩\fP
|
|
.TP
|
|
.B Profiling
|
|
\fB\-fno\-prof\-auto\fP \fB\-fprof\-auto\fP \fB\-fno\-prof\-cafs\fP \fB\-fprof\-cafs\fP \fB\-fno\-prof\-count\-entries\fP \fB\-fprof\-count\-entries\fP \fB\-fprof\-auto\fP \fB\-fno\-prof\-auto\fP \fB\-fprof\-auto\-calls\fP \fB\-fno\-prof\-auto\-calls\fP \fB\-fprof\-auto\-exported\fP \fB\-fno\-prof\-auto\fP \fB\-fprof\-auto\-top\fP \fB\-fno\-prof\-auto\fP \fB\-fprof\-cafs\fP \fB\-fno\-prof\-cafs\fP \fB\-prof\fP \fB\-ticky\fP
|
|
.TP
|
|
.B Program coverage
|
|
\fB\-fhpc\fP
|
|
.TP
|
|
.B Recompilation checking
|
|
\fB\-fforce\-recomp\fP \fB\-fno\-force\-recomp\fP \fB\-fignore\-hpc\-changes\fP \fB\-fno\-ignore\-hpc\-changes\fP \fB\-fignore\-optim\-changes\fP \fB\-fno\-ignore\-optim\-changes\fP
|
|
.TP
|
|
.B Redirecting output
|
|
\fB\-\-exclude\-module=⟨file⟩\fP \fB\-ddump\-mod\-cycles\fP \fB\-dep\-makefile ⟨file⟩\fP \fB\-dep\-suffix ⟨suffix⟩\fP \fB\-dumpdir ⟨dir⟩\fP \fB\-hcsuf ⟨suffix⟩\fP \fB\-hidir ⟨dir⟩\fP \fB\-hiedir ⟨dir⟩\fP \fB\-hiesuf ⟨suffix⟩\fP \fB\-hisuf ⟨suffix⟩\fP \fB\-include\-cpp\-deps\fP \fB\-include\-pkg\-deps\fP \fB\-o ⟨file⟩\fP \fB\-odir ⟨dir⟩\fP \fB\-ohi ⟨file⟩\fP \fB\-osuf ⟨suffix⟩\fP \fB\-outputdir ⟨dir⟩\fP \fB\-stubdir ⟨dir⟩\fP
|
|
.TP
|
|
.B Temporary files
|
|
\fB\-tmpdir ⟨dir⟩\fP
|
|
.TP
|
|
.B Verbosity options
|
|
\fB\-fabstract\-refinement\-hole\-fits\fP \fB\-fno\-abstract\-refinement\-hole\-fits\fP \fB\-fdefer\-diagnostics\fP \fB\-fdiagnostics\-color=⟨always|auto|never⟩\fP \fB\-fdiagnostics\-show\-caret\fP \fB\-fno\-diagnostics\-show\-caret\fP \fB\-ferror\-spans\fP \fB\-fhide\-source\-paths\fP \fB\-fkeep\-going\fP \fB\-fmax\-refinement\-hole\-fits=⟨n⟩\fP \fB\-fno\-max\-refinement\-hole\-fits\fP \fB\-fmax\-relevant\-binds=⟨n⟩\fP \fB\-fno\-max\-relevant\-binds\fP \fB\-fmax\-valid\-hole\-fits=⟨n⟩\fP \fB\-fno\-max\-valid\-hole\-fits\fP \fB\-fno\-show\-valid\-hole\-fits\fP \fB\-fno\-sort\-valid\-hole\-fits\fP \fB\-fsort\-valid\-hole\-fits\fP \fB\-fprint\-axiom\-incomps\fP \fB\-fno\-print\-axiom\-incomps\fP \fB\-fprint\-equality\-relations\fP \fB\-fno\-print\-equality\-relations\fP \fB\-fprint\-expanded\-synonyms\fP \fB\-fno\-print\-expanded\-synonyms\fP \fB\-fprint\-explicit\-coercions\fP \fB\-fno\-print\-explicit\-coercions\fP \fB\-fprint\-explicit\-foralls\fP \fB\-fno\-print\-explicit\-foralls\fP \fB\-fprint\-explicit\-kinds\fP \fB\-fno\-print\-explicit\-kinds\fP \fB\-fprint\-explicit\-runtime\-reps\fP \fB\-fno\-print\-explicit\-runtime\-reps\fP \fB\-fprint\-potential\-instances\fP \fB\-fno\-print\-potential\-instances\fP \fB\-fprint\-typechecker\-elaboration\fP \fB\-fno\-print\-typechecker\-elaboration\fP \fB\-fprint\-unicode\-syntax\fP \fB\-fno\-print\-unicode\-syntax\fP \fB\-frefinement\-level\-hole\-fits=⟨n⟩\fP \fB\-fno\-refinement\-level\-hole\-fits\fP \fB\-freverse\-errors\fP \fB\-fno\-reverse\-errors\fP \fB\-fshow\-docs\-of\-hole\-fits\fP \fB\-fno\-show\-docs\-of\-hole\-fits\fP \fB\-fshow\-hole\-constraints\fP \fB\-fshow\-hole\-matches\-of\-hole\-fits\fP \fB\-fno\-show\-hole\-matches\-of\-hole\-fits\fP \fB\-fshow\-provenance\-of\-hole\-fits\fP \fB\-fno\-show\-provenance\-of\-hole\-fits\fP \fB\-fshow\-type\-app\-of\-hole\-fits\fP \fB\-fno\-show\-type\-app\-of\-hole\-fits\fP \fB\-fshow\-type\-app\-vars\-of\-hole\-fits\fP \fB\-fno\-show\-type\-app\-vars\-of\-hole\-fits\fP \fB\-fshow\-type\-of\-hole\-fits\fP \fB\-fno\-type\-of\-hole\-fits\fP \fB\-funclutter\-valid\-hole\-fits\fP \fB\-Rghc\-timing\fP \fB\-v\fP \fB\-v⟨n⟩\fP
|
|
.TP
|
|
.B Warnings
|
|
\fB\-fdefer\-out\-of\-scope\-variables\fP \fB\-fno\-defer\-out\-of\-scope\-variables\fP \fB\-fdefer\-type\-errors\fP \fB\-fno\-defer\-type\-errors\fP \fB\-fdefer\-typed\-holes\fP \fB\-fno\-defer\-typed\-holes\fP \fB\-fenable\-th\-splice\-warnings\fP \fB\-fno\-enable\-th\-splices\fP \fB\-fhelpful\-errors\fP \fB\-fno\-helpful\-errors\fP \fB\-fmax\-pmcheck\-models=⟨n⟩\fP \fB\-fshow\-warning\-groups\fP \fB\-fno\-show\-warning\-groups\fP \fB\-fvia\-C\fP \fB\-W\fP \fB\-w\fP \fB\-w\fP \fB\-Wall\fP \fB\-w\fP \fB\-Wall\-missed\-specialisations\fP \fB\-Wno\-all\-missed\-specialisations\fP \fB\-Wcompat\fP \fB\-Wno\-compat\fP \fB\-Wcompat\-unqualified\-imports\fP \fB\-Wno\-compat\-unqualified\-imports\fP \fB\-Wcpp\-undef\fP \fB\-Wdeferred\-out\-of\-scope\-variables\fP \fB\-Wno\-deferred\-out\-of\-scope\-variables\fP \fB\-Wdeferred\-type\-errors\fP \fB\-Wno\-deferred\-type\-errors\fP \fB\-Wdeprecated\-flags\fP \fB\-Wno\-deprecated\-flags\fP \fB\-Wdeprecations\fP \fB\-Wno\-deprecations\fP \fB\-Wderiving\-defaults\fP \fB\-Wno\-deriving\-defaults\fP \fB\-Wdodgy\-exports\fP \fB\-Wno\-dodgy\-exports\fP \fB\-Wdodgy\-foreign\-imports\fP \fB\-Wno\-dodgy\-foreign\-import\fP \fB\-Wdodgy\-imports\fP \fB\-Wno\-dodgy\-imports\fP \fB\-Wduplicate\-constraints\fP \fB\-Wno\-duplicate\-constraints\fP \fB\-Wduplicate\-exports\fP \fB\-Wno\-duplicate\-exports\fP \fB\-Wempty\-enumerations\fP \fB\-Wno\-empty\-enumerations\fP \fB\-Werror\fP \fB\-Wwarn\fP \fB\-Weverything\fP \fB\-Whi\-shadowing\fP \fB\-Wno\-hi\-shadowing\fP \fB\-Widentities\fP \fB\-Wno\-identities\fP \fB\-Wimplicit\-kind\-vars\fP \fB\-Wno\-implicit\-kind\-vars\fP \fB\-Wimplicit\-prelude\fP \fB\-Wno\-implicit\-prelude\fP \fB\-Winaccessible\-code\fP \fB\-Wno\-inaccessible\-code\fP \fB\-Wincomplete\-patterns\fP \fB\-Wno\-incomplete\-patterns\fP \fB\-Wincomplete\-record\-updates\fP \fB\-Wno\-incomplete\-record\-updates\fP \fB\-Wincomplete\-uni\-patterns\fP \fB\-Wno\-incomplete\-uni\-patterns\fP \fB\-Winline\-rule\-shadowing\fP \fB\-Wno\-inline\-rule\-shadowing\fP \fB\-Wmissed\-extra\-shared\-lib\fP \fB\-Wno\-missed\-extra\-shared\-lib\fP \fB\-Wmissed\-specialisations\fP \fB\-Wno\-missed\-specialisations\fP \fB\-Wmissing\-deriving\-strategies\fP \fB\-Wno\-missing\-deriving\-strategies\fP \fB\-Wmissing\-export\-lists\fP \fB\-fnowarn\-missing\-export\-lists\fP \fB\-Wmissing\-exported\-signatures\fP \fB\-Wno\-missing\-exported\-signatures\fP \fB\-Wmissing\-exported\-sigs\fP \fB\-Wno\-missing\-exported\-sigs\fP \fB\-Wmissing\-fields\fP \fB\-Wno\-missing\-fields\fP \fB\-Wmissing\-home\-modules\fP \fB\-Wno\-missing\-home\-modules\fP \fB\-Wmissing\-import\-lists\fP \fB\-fnowarn\-missing\-import\-lists\fP \fB\-Wmissing\-local\-signatures\fP \fB\-Wno\-missing\-local\-signatures\fP \fB\-Wmissing\-local\-sigs\fP \fB\-Wno\-missing\-local\-sigs\fP \fB\-Wmissing\-methods\fP \fB\-Wno\-missing\-methods\fP \fB\-Wmissing\-monadfail\-instances\fP \fB\-Wno\-missing\-monadfail\-instances\fP \fB\-Wmissing\-pattern\-synonym\-signatures\fP \fB\-Wno\-missing\-pattern\-synonym\-signatures\fP \fB\-Wmissing\-signatures\fP \fB\-Wno\-missing\-signatures\fP \fB\-Wmonomorphism\-restriction\fP \fB\-Wno\-monomorphism\-restriction\fP \fB\-Wname\-shadowing\fP \fB\-Wno\-name\-shadowing\fP \fB\-Wno\-compat\fP \fB\-Wcompat\fP \fB\-Wnoncanonical\-monad\-instances\fP \fB\-Wno\-noncanonical\-monad\-instances\fP \fB\-Wnoncanonical\-monadfail\-instances\fP \fB\-Wno\-noncanonical\-monadfail\-instances\fP \fB\-Wnoncanonical\-monoid\-instances\fP \fB\-Wno\-noncanonical\-monoid\-instances\fP \fB\-Worphans\fP \fB\-Wno\-orphans\fP \fB\-Woverflowed\-literals\fP \fB\-Wno\-overflowed\-literals\fP \fB\-Woverlapping\-patterns\fP \fB\-Wno\-overlapping\-patterns\fP \fB\-Wpartial\-fields\fP \fB\-Wno\-partial\-fields\fP \fB\-Wpartial\-type\-signatures\fP \fB\-Wno\-partial\-type\-signatures\fP \fB\-Wredundant\-constraints\fP \fB\-Wno\-redundant\-constraints\fP \fB\-Wredundant\-record\-wildcards\fP \fB\-Wno\-redundant\-record\-wildcards\fP \fB\-Wsafe\fP \fB\-Wno\-safe\fP \fB\-Wsemigroup\fP \fB\-Wno\-semigroup\fP \fB\-Wsimplifiable\-class\-constraints\fP \fB\-Wno\-simplifiable\-class\-constraints\fP \fB\-Wspace\-after\-bang\fP \fB\-Wno\-missing\-space\-after\-bang\fP \fB\-Wstar\-binder\fP \fB\-Wno\-star\-binder\fP \fB\-Wstar\-is\-type\fP \fB\-Wno\-star\-is\-type\fP \fB\-Wtabs\fP \fB\-Wno\-tabs\fP \fB\-Wtrustworthy\-safe\fP \fB\-Wno\-safe\fP \fB\-Wtype\-defaults\fP \fB\-Wno\-type\-defaults\fP \fB\-Wtyped\-holes\fP \fB\-Wno\-typed\-holes\fP \fB\-Wunbanged\-strict\-patterns\fP \fB\-Wno\-unbanged\-strict\-patterns\fP \fB\-Wunrecognised\-pragmas\fP \fB\-Wno\-unrecognised\-pragmas\fP \fB\-Wunrecognised\-warning\-flags\fP \fB\-Wno\-unrecognised\-warning\-flags\fP \fB\-Wunsafe\fP \fB\-Wno\-unsafe\fP \fB\-Wunsupported\-calling\-conventions\fP \fB\-Wno\-unsupported\-calling\-conventions\fP \fB\-Wunsupported\-llvm\-version\fP \fB\-Wno\-monomorphism\-restriction\fP \fB\-Wunticked\-promoted\-constructors\fP \fB\-Wno\-unticked\-promoted\-constructors\fP \fB\-Wunused\-binds\fP \fB\-Wno\-unused\-binds\fP \fB\-Wunused\-do\-bind\fP \fB\-Wno\-unused\-do\-bind\fP \fB\-Wunused\-foralls\fP \fB\-Wno\-unused\-foralls\fP \fB\-Wunused\-imports\fP \fB\-Wno\-unused\-imports\fP \fB\-Wunused\-local\-binds\fP \fB\-Wno\-unused\-local\-binds\fP \fB\-Wunused\-matches\fP \fB\-Wno\-unused\-matches\fP \fB\-Wunused\-packages\fP \fB\-Wno\-unused\-packages\fP \fB\-Wunused\-pattern\-binds\fP \fB\-Wno\-unused\-pattern\-binds\fP \fB\-Wunused\-record\-wildcards\fP \fB\-Wno\-unused\-record\-wildcards\fP \fB\-Wunused\-top\-binds\fP \fB\-Wno\-unused\-top\-binds\fP \fB\-Wunused\-type\-patterns\fP \fB\-Wno\-unused\-type\-patterns\fP \fB\-Wwarn\fP \fB\-Werror\fP \fB\-Wwarnings\-deprecations\fP \fB\-Wno\-warnings\-deprecations\fP \fB\-Wwrong\-do\-bind\fP \fB\-Wno\-wrong\-do\-bind\fP
|
|
.SS Code generation
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-dynamic\-too\fP
|
|
Build dynamic object files \fIas well as\fP static object files
|
|
during compilation
|
|
.TP
|
|
.B \fB\-fasm\fP
|
|
Use the native code generator
|
|
.TP
|
|
.B \fB\-fbyte\-code\fP
|
|
Generate byte\-code
|
|
.TP
|
|
.B \fB\-fexternal\-dynamic\-refs\fP
|
|
Generate code for linking against dynamic libraries
|
|
.TP
|
|
.B \fB\-fllvm\fP
|
|
Compile using the LLVM code generator
|
|
.TP
|
|
.B \fB\-fno\-code\fP
|
|
Omit code generation
|
|
.TP
|
|
.B \fB\-fobject\-code\fP
|
|
Generate object code
|
|
.TP
|
|
.B \fB\-fPIC\fP
|
|
Generate position\-independent code (where available)
|
|
.TP
|
|
.B \fB\-fPIE\fP
|
|
Generate code for a position\-independent executable (where available)
|
|
.TP
|
|
.B \fB\-fwrite\-interface\fP
|
|
Always write interface files
|
|
.UNINDENT
|
|
.SS Debugging the compiler
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-dcmm\-lint\fP
|
|
C\-\e\- pass sanity checking
|
|
.TP
|
|
.B \fB\-dcore\-lint\fP
|
|
Turn on internal sanity checking
|
|
.TP
|
|
.B \fB\-ddump\-asm\fP
|
|
Dump final assembly
|
|
.TP
|
|
.B \fB\-ddump\-asm\-expanded\fP
|
|
Dump the result of the synthetic instruction expansion pass.
|
|
.TP
|
|
.B \fB\-ddump\-asm\-liveness\fP
|
|
Dump assembly augmented with register liveness
|
|
.TP
|
|
.B \fB\-ddump\-asm\-native\fP
|
|
Dump initial assembly
|
|
.TP
|
|
.B \fB\-ddump\-asm\-regalloc\fP
|
|
Dump the result of register allocation
|
|
.TP
|
|
.B \fB\-ddump\-asm\-regalloc\-stages\fP
|
|
Dump the build/spill stages of the \fB\-fregs\-graph\fP
|
|
register allocator.
|
|
.TP
|
|
.B \fB\-ddump\-asm\-stats\fP
|
|
Dump statistics from the register allocator.
|
|
.TP
|
|
.B \fB\-ddump\-bcos\fP
|
|
Dump interpreter byte code
|
|
.TP
|
|
.B \fB\-ddump\-cfg\-weights\fP
|
|
Dump the assumed weights of the CFG.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\fP
|
|
Dump the final C\-\e\- output
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-caf\fP
|
|
Dump the results of the C\-\e\- CAF analysis pass.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-cbe\fP
|
|
Dump the results of common block elimination
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-cfg\fP
|
|
Dump the results of the C\-\e\- control flow optimisation pass.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-cps\fP
|
|
Dump the results of the CPS pass
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-from\-stg\fP
|
|
Dump STG\-to\-C\-\e\- output
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-info\fP
|
|
Dump the results of the C\-\e\- info table augmentation pass.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-proc\fP
|
|
Dump the results of proc\-point analysis
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-procmap\fP
|
|
Dump the results of the C\-\e\- proc\-point map pass.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-raw\fP
|
|
Dump raw C\-\e\-
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-sink\fP
|
|
Dump the results of the C\-\e\- sinking pass.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-sp\fP
|
|
Dump the results of the C\-\e\- stack layout pass.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-split\fP
|
|
Dump the results of the C\-\e\- proc\-point splitting pass.
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-switch\fP
|
|
Dump the results of switch lowering passes
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-verbose\fP
|
|
Write output from main C\-\e\- pipeline passes to files
|
|
.TP
|
|
.B \fB\-ddump\-cmm\-verbose\-by\-proc\fP
|
|
Show output from main C\-\e\- pipeline passes (grouped by proc)
|
|
.TP
|
|
.B \fB\-ddump\-core\-stats\fP
|
|
Print a one\-line summary of the size of the Core program at the
|
|
end of the optimisation pipeline
|
|
.TP
|
|
.B \fB\-ddump\-cse\fP
|
|
Dump CSE output
|
|
.TP
|
|
.B \fB\-ddump\-deriv\fP
|
|
Dump deriving output
|
|
.TP
|
|
.B \fB\-ddump\-ds\fP
|
|
Dump desugarer output.
|
|
.TP
|
|
.B \fB\-ddump\-ec\-trace\fP
|
|
Trace exhaustiveness checker
|
|
.TP
|
|
.B \fB\-ddump\-file\-prefix=⟨str⟩\fP
|
|
Set the prefix of the filenames used for debugging output.
|
|
.TP
|
|
.B \fB\-ddump\-foreign\fP
|
|
Dump \fBforeign export\fP stubs
|
|
.TP
|
|
.B \fB\-ddump\-hpc\fP
|
|
An alias for \fB\-ddump\-ticked\fP\&.
|
|
.TP
|
|
.B \fB\-ddump\-if\-trace\fP
|
|
Trace interface files
|
|
.TP
|
|
.B \fB\-ddump\-inlinings\fP
|
|
Dump inlining info
|
|
.TP
|
|
.B \fB\-ddump\-json\fP
|
|
Dump error messages as JSON documents
|
|
.TP
|
|
.B \fB\-ddump\-llvm\fP
|
|
Dump LLVM intermediate code.
|
|
.TP
|
|
.B \fB\-ddump\-mod\-map\fP
|
|
Dump the state of the module mapping database.
|
|
.TP
|
|
.B \fB\-ddump\-occur\-anal\fP
|
|
Dump occurrence analysis output
|
|
.TP
|
|
.B \fB\-ddump\-opt\-cmm\fP
|
|
Dump the results of C\-\e\- to C\-\e\- optimising passes
|
|
.TP
|
|
.B \fB\-ddump\-parsed\fP
|
|
Dump parse tree
|
|
.TP
|
|
.B \fB\-ddump\-parsed\-ast\fP
|
|
Dump parser output as a syntax tree
|
|
.TP
|
|
.B \fB\-ddump\-prep\fP
|
|
Dump prepared core
|
|
.TP
|
|
.B \fB\-ddump\-rn\fP
|
|
Dump renamer output
|
|
.TP
|
|
.B \fB\-ddump\-rn\-ast\fP
|
|
Dump renamer output as a syntax tree
|
|
.TP
|
|
.B \fB\-ddump\-rn\-stats\fP
|
|
Renamer stats
|
|
.TP
|
|
.B \fB\-ddump\-rn\-trace\fP
|
|
Trace renamer
|
|
.TP
|
|
.B \fB\-ddump\-rtti\fP
|
|
Trace runtime type inference
|
|
.TP
|
|
.B \fB\-ddump\-rule\-firings\fP
|
|
Dump rule firing info
|
|
.TP
|
|
.B \fB\-ddump\-rule\-rewrites\fP
|
|
Dump detailed rule firing info
|
|
.TP
|
|
.B \fB\-ddump\-rules\fP
|
|
Dump rewrite rules
|
|
.TP
|
|
.B \fB\-ddump\-simpl\fP
|
|
Dump final simplifier output
|
|
.TP
|
|
.B \fB\-ddump\-simpl\-iterations\fP
|
|
Dump output from each simplifier iteration
|
|
.TP
|
|
.B \fB\-ddump\-simpl\-stats\fP
|
|
Dump simplifier stats
|
|
.TP
|
|
.B \fB\-ddump\-spec\fP
|
|
Dump specialiser output
|
|
.TP
|
|
.B \fB\-ddump\-splices\fP
|
|
Dump TH spliced expressions, and what they evaluate to
|
|
.TP
|
|
.B \fB\-ddump\-stg\fP
|
|
Show CoreToStg output
|
|
.TP
|
|
.B \fB\-ddump\-stg\-final\fP
|
|
Show output of last STG pass.
|
|
.TP
|
|
.B \fB\-ddump\-stg\-unarised\fP
|
|
Show unarised STG
|
|
.TP
|
|
.B \fB\-ddump\-str\-signatures\fP
|
|
Dump strictness signatures
|
|
.TP
|
|
.B \fB\-ddump\-stranal\fP
|
|
Dump strictness analyser output
|
|
.TP
|
|
.B \fB\-ddump\-tc\fP
|
|
Dump typechecker output
|
|
.TP
|
|
.B \fB\-ddump\-tc\-ast\fP
|
|
Dump typechecker output as a syntax tree
|
|
.TP
|
|
.B \fB\-ddump\-tc\-trace\fP
|
|
Trace typechecker
|
|
.TP
|
|
.B \fB\-ddump\-ticked\fP
|
|
Dump the code instrumented by HPC (hpc).
|
|
.TP
|
|
.B \fB\-ddump\-timings\fP
|
|
Dump per\-pass timing and allocation statistics
|
|
.TP
|
|
.B \fB\-ddump\-to\-file\fP
|
|
Dump to files instead of stdout
|
|
.TP
|
|
.B \fB\-ddump\-types\fP
|
|
Dump type signatures
|
|
.TP
|
|
.B \fB\-ddump\-worker\-wrapper\fP
|
|
Dump worker\-wrapper output
|
|
.TP
|
|
.B \fB\-dfaststring\-stats\fP
|
|
Show statistics for fast string usage when finished
|
|
.TP
|
|
.B \fB\-dhex\-word\-literals\fP
|
|
Print values of type \fIWord#\fP in hexadecimal.
|
|
.TP
|
|
.B \fB\-dinitial\-unique=⟨s⟩\fP
|
|
Start \fBUniqSupply\fP allocation from ⟨s⟩.
|
|
.TP
|
|
.B \fB\-dinline\-check=⟨str⟩\fP
|
|
Dump information about inlining decisions
|
|
.TP
|
|
.B \fB\-dno\-debug\-output\fP
|
|
Suppress unsolicited debugging output
|
|
.TP
|
|
.B \fB\-dno\-typeable\-binds\fP
|
|
Don\(aqt generate bindings for Typeable methods
|
|
.TP
|
|
.B \fB\-dppr\-case\-as\-let\fP
|
|
Print single alternative case expressions as strict lets.
|
|
.TP
|
|
.B \fB\-dppr\-cols=⟨n⟩\fP
|
|
Set the width of debugging output. For example \fB\-dppr\-cols200\fP
|
|
.TP
|
|
.B \fB\-dppr\-debug\fP
|
|
Turn on debug printing (more verbose)
|
|
.TP
|
|
.B \fB\-dppr\-user\-length\fP
|
|
Set the depth for printing expressions in error msgs
|
|
.TP
|
|
.B \fB\-drule\-check=⟨str⟩\fP
|
|
Dump information about potential rule application
|
|
.TP
|
|
.B \fB\-dshow\-passes\fP
|
|
Print out each pass name as it happens
|
|
.TP
|
|
.B \fB\-dstg\-lint\fP
|
|
STG pass sanity checking
|
|
.TP
|
|
.B \fB\-dsuppress\-all\fP
|
|
In dumps, suppress everything (except for uniques) that is
|
|
suppressible.
|
|
.TP
|
|
.B \fB\-dsuppress\-coercions\fP
|
|
Suppress the printing of coercions in Core dumps to make them
|
|
shorter
|
|
.TP
|
|
.B \fB\-dsuppress\-idinfo\fP
|
|
Suppress extended information about identifiers where they
|
|
are bound
|
|
.TP
|
|
.B \fB\-dsuppress\-module\-prefixes\fP
|
|
Suppress the printing of module qualification prefixes
|
|
.TP
|
|
.B \fB\-dsuppress\-stg\-free\-vars\fP
|
|
Suppress the printing of closure free variable lists in STG output
|
|
.TP
|
|
.B \fB\-dsuppress\-ticks\fP
|
|
Suppress "ticks" in the pretty\-printer output.
|
|
.TP
|
|
.B \fB\-dsuppress\-timestamps\fP
|
|
Suppress timestamps in dumps
|
|
.TP
|
|
.B \fB\-dsuppress\-type\-applications\fP
|
|
Suppress type applications
|
|
.TP
|
|
.B \fB\-dsuppress\-type\-signatures\fP
|
|
Suppress type signatures
|
|
.TP
|
|
.B \fB\-dsuppress\-unfoldings\fP
|
|
Suppress the printing of the stable unfolding of a variable at
|
|
its binding site
|
|
.TP
|
|
.B \fB\-dsuppress\-uniques\fP
|
|
Suppress the printing of uniques in debug output (easier to use
|
|
\fBdiff\fP)
|
|
.TP
|
|
.B \fB\-dsuppress\-var\-kinds\fP
|
|
Suppress the printing of variable kinds
|
|
.TP
|
|
.B \fB\-dth\-dec\-file\fP
|
|
Dump evaluated TH declarations into \fI*.th.hs\fP files
|
|
.TP
|
|
.B \fB\-dunique\-increment=⟨i⟩\fP
|
|
Set the increment for the generated \fBUnique\fP\(aqs to ⟨i⟩.
|
|
.TP
|
|
.B \fB\-dverbose\-core2core\fP
|
|
Show output from each core\-to\-core pass
|
|
.TP
|
|
.B \fB\-dverbose\-stg2stg\fP
|
|
Show output from each STG\-to\-STG pass
|
|
.TP
|
|
.B \fB\-falignment\-sanitisation\fP
|
|
Compile with alignment checks for all info table dereferences.
|
|
.TP
|
|
.B \fB\-fcatch\-bottoms\fP
|
|
Insert \fBerror\fP expressions after bottoming expressions; useful
|
|
when debugging the compiler.
|
|
.TP
|
|
.B \fB\-fllvm\-fill\-undef\-with\-garbage\fP
|
|
Intruct LLVM to fill dead STG registers with garbage
|
|
.TP
|
|
.B \fB\-fproc\-alignment\fP
|
|
Align functions at given boundary.
|
|
.TP
|
|
.B \fB\-g\fP
|
|
Produce DWARF debug information in compiled object files.
|
|
⟨n⟩ can be 0, 1, or 2, with higher numbers producing richer
|
|
output. If ⟨n⟩ is omitted, level 2 is assumed.
|
|
.UNINDENT
|
|
.SS C pre\-processor
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-cpp\fP
|
|
Run the C pre\-processor on Haskell source files
|
|
.TP
|
|
.B \fB\-D⟨symbol⟩[=⟨value⟩]\fP
|
|
Define a symbol in the C pre\-processor
|
|
.TP
|
|
.B \fB\-I⟨dir⟩\fP
|
|
Add ⟨dir⟩ to the directory search list for \fB#include\fP files
|
|
.TP
|
|
.B \fB\-U⟨symbol⟩\fP
|
|
Undefine a symbol in the C pre\-processor
|
|
.UNINDENT
|
|
.SS Finding imports
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-i\fP
|
|
Empty the import directory list
|
|
.TP
|
|
.B \fB\-i⟨dir⟩[:⟨dir⟩]*\fP
|
|
add ⟨dir⟩, ⟨dir2⟩, etc. to import path
|
|
.UNINDENT
|
|
.SS Interactive mode
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fbreak\-on\-error\fP
|
|
Break on uncaught exceptions and errors
|
|
.TP
|
|
.B \fB\-fbreak\-on\-exception\fP
|
|
Break on any exception thrown
|
|
.TP
|
|
.B \fB\-fghci\-hist\-size=⟨n⟩\fP
|
|
Set the number of entries GHCi keeps for \fB:history\fP\&.
|
|
See ghci\-debugger\&.
|
|
.TP
|
|
.B \fB\-fghci\-leak\-check\fP
|
|
(Debugging only) check for space leaks when loading
|
|
new modules in GHCi.
|
|
.TP
|
|
.B \fB\-flocal\-ghci\-history\fP
|
|
Use current directory for the GHCi command history
|
|
file \fB\&.ghci\-history\fP\&.
|
|
.TP
|
|
.B \fB\-fno\-it\fP
|
|
No longer set the special variable \fBit\fP\&.
|
|
.TP
|
|
.B \fB\-fprint\-bind\-result\fP
|
|
Turn on printing of binding results in GHCi
|
|
.TP
|
|
.B \fB\-fprint\-evld\-with\-show\fP
|
|
Instruct \fB:print\fP to use \fBShow\fP instances where possible.
|
|
.TP
|
|
.B \fB\-fshow\-loaded\-modules\fP
|
|
Show the names of modules that GHCi loaded after a
|
|
\fB:load\fP command.
|
|
.TP
|
|
.B \fB\-ghci\-script\fP
|
|
Read additional \fB\&.ghci\fP files
|
|
.TP
|
|
.B \fB\-ignore\-dot\-ghci\fP
|
|
Disable reading of \fB\&.ghci\fP files
|
|
.TP
|
|
.B \fB\-interactive\-print ⟨name⟩\fP
|
|
Select the function to use for printing evaluated
|
|
expressions in GHCi
|
|
.UNINDENT
|
|
.SS Interface files
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-\-show\-iface ⟨file⟩\fP
|
|
See modes\&.
|
|
.TP
|
|
.B \fB\-ddump\-hi\fP
|
|
Dump the new interface to stdout
|
|
.TP
|
|
.B \fB\-ddump\-hi\-diffs\fP
|
|
Show the differences vs. the old interface
|
|
.TP
|
|
.B \fB\-ddump\-minimal\-imports\fP
|
|
Dump a minimal set of imports
|
|
.UNINDENT
|
|
.SS Keeping intermediate files
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-keep\-hc\-file\fP
|
|
Retain intermediate \fB\&.hc\fP files.
|
|
.TP
|
|
.B \fB\-keep\-hi\-files\fP
|
|
Retain intermediate \fB\&.hi\fP files (the default).
|
|
.TP
|
|
.B \fB\-keep\-hscpp\-file\fP
|
|
Retain intermediate \fB\&.hscpp\fP files.
|
|
.TP
|
|
.B \fB\-keep\-llvm\-file\fP
|
|
Retain intermediate LLVM \fB\&.ll\fP files.
|
|
Implies \fB\-fllvm\fP\&.
|
|
.TP
|
|
.B \fB\-keep\-o\-files\fP
|
|
Retain intermediate \fB\&.o\fP files (the default).
|
|
.TP
|
|
.B \fB\-keep\-s\-file\fP
|
|
Retain intermediate \fB\&.s\fP files.
|
|
.TP
|
|
.B \fB\-keep\-tmp\-files\fP
|
|
Retain all intermediate temporary files.
|
|
.UNINDENT
|
|
.SS Language options
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fno\-safe\-haskell\fP
|
|
Disable Safe Haskell
|
|
.TP
|
|
.B \fB\-fsort\-by\-size\-hole\-fits\fP
|
|
Sort valid hole fits by size.
|
|
.TP
|
|
.B \fB\-fsort\-by\-subsumption\-hole\-fits\fP
|
|
Sort valid hole fits by subsumption.
|
|
.TP
|
|
.B \fB\-Winferred\-safe\-imports\fP
|
|
warn when an explicitly Safe Haskell module imports a Safe\-Inferred one
|
|
.TP
|
|
.B \fB\-Wmissing\-safe\-haskell\-mode\fP
|
|
warn when the Safe Haskell mode is not explicitly specified.
|
|
.TP
|
|
.B \fB\-XAllowAmbiguousTypes\fP
|
|
Allow the user to write ambiguous types, and
|
|
the type inference engine to infer them.
|
|
.TP
|
|
.B \fB\-XApplicativeDo\fP
|
|
Enable Applicative do\-notation desugaring
|
|
.TP
|
|
.B \fB\-XArrows\fP
|
|
Enable arrow notation extension
|
|
.TP
|
|
.B \fB\-XBangPatterns\fP
|
|
Enable bang patterns.
|
|
.TP
|
|
.B \fB\-XBinaryLiterals\fP
|
|
Enable support for binary literals.
|
|
.TP
|
|
.B \fB\-XBlockArguments\fP
|
|
Allow \fBdo\fP blocks and other constructs as function arguments.
|
|
.TP
|
|
.B \fB\-XCApiFFI\fP
|
|
Enable the CAPI calling convention.
|
|
.TP
|
|
.B \fB\-XConstrainedClassMethods\fP
|
|
Enable constrained class methods.
|
|
.TP
|
|
.B \fB\-XConstraintKinds\fP
|
|
Enable a kind of constraints.
|
|
.TP
|
|
.B \fB\-XCPP\fP
|
|
Enable the C preprocessor.
|
|
.TP
|
|
.B \fB\-XCUSKs\fP
|
|
Enable detection of complete user\-supplied kind signatures.
|
|
.TP
|
|
.B \fB\-XDataKinds\fP
|
|
Enable datatype promotion.
|
|
.TP
|
|
.B \fB\-XDatatypeContexts\fP
|
|
Allow contexts on \fBdata\fP types.
|
|
.TP
|
|
.B \fB\-XDefaultSignatures\fP
|
|
Enable default signatures.
|
|
.TP
|
|
.B \fB\-XDeriveAnyClass\fP
|
|
Enable deriving for any class.
|
|
.TP
|
|
.B \fB\-XDeriveDataTypeable\fP
|
|
Enable deriving for the \fBData\fP class.
|
|
Implied by (deprecated) \fBAutoDeriveTypeable\fP\&.
|
|
.TP
|
|
.B \fB\-XDeriveFoldable\fP
|
|
Enable deriving for the Foldable class.
|
|
Implied by \fBDeriveTraversable\fP\&.
|
|
.TP
|
|
.B \fB\-XDeriveFunctor\fP
|
|
Enable deriving for the Functor class.
|
|
Implied by \fBDeriveTraversable\fP\&.
|
|
.TP
|
|
.B \fB\-XDeriveGeneric\fP
|
|
Enable deriving for the Generic class.
|
|
.TP
|
|
.B \fB\-XDeriveLift\fP
|
|
Enable deriving for the Lift class
|
|
.TP
|
|
.B \fB\-XDeriveTraversable\fP
|
|
Enable deriving for the Traversable class.
|
|
Implies \fBDeriveFunctor\fP and \fBDeriveFoldable\fP\&.
|
|
.TP
|
|
.B \fB\-XDerivingStrategies\fP
|
|
Enables deriving strategies.
|
|
.TP
|
|
.B \fB\-XDerivingVia\fP
|
|
Enable deriving instances \fBvia\fP types of the same runtime
|
|
representation.
|
|
Implies \fBDerivingStrategies\fP\&.
|
|
.TP
|
|
.B \fB\-XDisambiguateRecordFields\fP
|
|
Enable record field disambiguation.
|
|
Implied by \fBRecordWildCards\fP\&.
|
|
.TP
|
|
.B \fB\-XDuplicateRecordFields\fP
|
|
Allow definition of record types with identically\-named fields.
|
|
.TP
|
|
.B \fB\-XEmptyCase\fP
|
|
Allow empty case alternatives.
|
|
.TP
|
|
.B \fB\-XEmptyDataDecls\fP
|
|
Allow definition of empty \fBdata\fP types.
|
|
.TP
|
|
.B \fB\-XEmptyDataDeriving\fP
|
|
Allow deriving instances of standard type classes for
|
|
empty data types.
|
|
.TP
|
|
.B \fB\-XExistentialQuantification\fP
|
|
Enable liberalised type synonyms.
|
|
.TP
|
|
.B \fB\-XExplicitForAll\fP
|
|
Enable explicit universal quantification.
|
|
Implied by \fBScopedTypeVariables\fP, \fBLiberalTypeSynonyms\fP,
|
|
\fBRankNTypes\fP and \fBExistentialQuantification\fP\&.
|
|
.TP
|
|
.B \fB\-XExplicitNamespaces\fP
|
|
Enable using the keyword \fBtype\fP to specify the namespace of
|
|
entries in imports and exports (explicit\-namespaces).
|
|
Implied by \fBTypeOperators\fP and \fBTypeFamilies\fP\&.
|
|
.TP
|
|
.B \fB\-XExtendedDefaultRules\fP
|
|
Use GHCi\(aqs extended default rules in a normal module.
|
|
.TP
|
|
.B \fB\-XFlexibleContexts\fP
|
|
Enable flexible contexts.
|
|
.TP
|
|
.B \fB\-XFlexibleInstances\fP
|
|
Enable flexible instances.
|
|
Implies \fBTypeSynonymInstances\fP\&.
|
|
.TP
|
|
.B \fB\-XForeignFunctionInterface\fP
|
|
Enable foreign function interface.
|
|
.TP
|
|
.B \fB\-XFunctionalDependencies\fP
|
|
Enable functional dependencies.
|
|
Implies \fBMultiParamTypeClasses\fP\&.
|
|
.TP
|
|
.B \fB\-XGADTs\fP
|
|
Enable generalised algebraic data types.
|
|
Implies \fBGADTSyntax\fP and \fBMonoLocalBinds\fP\&.
|
|
.TP
|
|
.B \fB\-XGADTSyntax\fP
|
|
Enable generalised algebraic data type syntax.
|
|
.TP
|
|
.B \fB\-XGeneralisedNewtypeDeriving\fP
|
|
Enable newtype deriving.
|
|
.TP
|
|
.B \fB\-XGeneralizedNewtypeDeriving\fP
|
|
Enable newtype deriving.
|
|
.TP
|
|
.B \fB\-XHaskell2010\fP
|
|
Use the Haskell 2010 language variant.
|
|
.TP
|
|
.B \fB\-XHaskell98\fP
|
|
Use the Haskell 2010 language variant.
|
|
.TP
|
|
.B \fB\-XHexFloatLiterals\fP
|
|
Enable support for hexadecimal floating point literals\&.
|
|
.TP
|
|
.B \fB\-XImplicitParams\fP
|
|
Enable Implicit Parameters.
|
|
.TP
|
|
.B \fB\-XImportQualifiedPost\fP
|
|
\fBImportQualifiedPost\fP allows the syntax \fBimport M qualified\fP
|
|
.TP
|
|
.B \fB\-XImpredicativeTypes\fP
|
|
Enable impredicative types.
|
|
Implies \fBRankNTypes\fP\&.
|
|
.TP
|
|
.B \fB\-XIncoherentInstances\fP
|
|
Enable incoherent instances.
|
|
Implies \fBOverlappingInstances\fP\&.
|
|
.TP
|
|
.B \fB\-XInstanceSigs\fP
|
|
Enable instance signatures.
|
|
.TP
|
|
.B \fB\-XInterruptibleFFI\fP
|
|
Enable interruptible FFI.
|
|
.TP
|
|
.B \fB\-XKindSignatures\fP
|
|
Enable kind signatures.
|
|
Implied by \fBTypeFamilies\fP and \fBPolyKinds\fP\&.
|
|
.TP
|
|
.B \fB\-XLambdaCase\fP
|
|
Enable lambda\-case expressions.
|
|
.TP
|
|
.B \fB\-XLiberalTypeSynonyms\fP
|
|
Enable liberalised type synonyms.
|
|
.TP
|
|
.B \fB\-XMagicHash\fP
|
|
Allow \fB#\fP as a postfix modifier on identifiers.
|
|
.TP
|
|
.B \fB\-XMonadComprehensions\fP
|
|
Enable monad comprehensions.
|
|
.TP
|
|
.B \fB\-XMonadFailDesugaring\fP
|
|
Enable monadfail desugaring.
|
|
.TP
|
|
.B \fB\-XMonoLocalBinds\fP
|
|
Enable do not generalise local bindings.
|
|
Implied by \fBTypeFamilies\fP and \fBGADTs\fP\&.
|
|
.TP
|
|
.B \fB\-XMultiParamTypeClasses\fP
|
|
Enable multi parameter type classes.
|
|
Implied by \fBFunctionalDependencies\fP\&.
|
|
.TP
|
|
.B \fB\-XMultiWayIf\fP
|
|
Enable multi\-way if\-expressions.
|
|
.TP
|
|
.B \fB\-XNamedFieldPuns\fP
|
|
Enable record puns.
|
|
.TP
|
|
.B \fB\-XNamedWildCards\fP
|
|
Enable named wildcards.
|
|
.TP
|
|
.B \fB\-XNegativeLiterals\fP
|
|
Enable support for negative literals.
|
|
.TP
|
|
.B \fB\-XNoImplicitPrelude\fP
|
|
Don\(aqt implicitly \fBimport Prelude\fP\&.
|
|
Implied by \fBRebindableSyntax\fP\&.
|
|
.TP
|
|
.B \fB\-XNoMonomorphismRestriction\fP
|
|
Disable the monomorphism restriction.
|
|
.TP
|
|
.B \fB\-XNondecreasingIndentation\fP
|
|
Allow nested contexts to be at the same indentation level as
|
|
its enclosing context.
|
|
.TP
|
|
.B \fB\-XNoPatternGuards\fP
|
|
Disable pattern guards.
|
|
Implied by \fBHaskell98\fP\&.
|
|
.TP
|
|
.B \fB\-XNoTraditionalRecordSyntax\fP
|
|
Disable support for traditional record syntax
|
|
(as supported by Haskell 98) \fBC {f = x}\fP
|
|
.TP
|
|
.B \fB\-XNPlusKPatterns\fP
|
|
Enable support for \fBn+k\fP patterns.
|
|
Implied by \fBHaskell98\fP\&.
|
|
.TP
|
|
.B \fB\-XNullaryTypeClasses\fP
|
|
Deprecated, does nothing. nullary (no parameter) type
|
|
classes are now enabled using \fBMultiParamTypeClasses\fP\&.
|
|
.TP
|
|
.B \fB\-XNumDecimals\fP
|
|
Enable support for \(aqfractional\(aq integer literals.
|
|
.TP
|
|
.B \fB\-XNumericUnderscores\fP
|
|
Enable support for numeric underscores\&.
|
|
.TP
|
|
.B \fB\-XOverlappingInstances\fP
|
|
Enable overlapping instances.
|
|
.TP
|
|
.B \fB\-XOverloadedLabels\fP
|
|
Enable overloaded labels.
|
|
.TP
|
|
.B \fB\-XOverloadedLists\fP
|
|
Enable overloaded lists.
|
|
.TP
|
|
.B \fB\-XOverloadedStrings\fP
|
|
Enable overloaded string literals.
|
|
.TP
|
|
.B \fB\-XPackageImports\fP
|
|
Enable package\-qualified imports.
|
|
.TP
|
|
.B \fB\-XParallelListComp\fP
|
|
Enable parallel list comprehensions.
|
|
.TP
|
|
.B \fB\-XPartialTypeSignatures\fP
|
|
Enable partial type signatures.
|
|
.TP
|
|
.B \fB\-XPatternSynonyms\fP
|
|
Enable pattern synonyms.
|
|
.TP
|
|
.B \fB\-XPolyKinds\fP
|
|
Enable kind polymorphism.
|
|
Implies \fBKindSignatures\fP\&.
|
|
.TP
|
|
.B \fB\-XPostfixOperators\fP
|
|
Enable postfix operators.
|
|
.TP
|
|
.B \fB\-XQuantifiedConstraints\fP
|
|
Allow \fBforall\fP quantifiers in constraints.
|
|
.TP
|
|
.B \fB\-XQuasiQuotes\fP
|
|
Enable quasiquotation.
|
|
.TP
|
|
.B \fB\-XRank2Types\fP
|
|
Enable rank\-2 types.
|
|
Synonym for \fBRankNTypes\fP\&.
|
|
.TP
|
|
.B \fB\-XRankNTypes\fP
|
|
Enable rank\-N types.
|
|
Implied by \fBImpredicativeTypes\fP\&.
|
|
.TP
|
|
.B \fB\-XRebindableSyntax\fP
|
|
Employ rebindable syntax.
|
|
Implies \fBNoImplicitPrelude\fP\&.
|
|
.TP
|
|
.B \fB\-XRecordWildCards\fP
|
|
Enable record wildcards.
|
|
Implies \fBDisambiguateRecordFields\fP\&.
|
|
.TP
|
|
.B \fB\-XRecursiveDo\fP
|
|
Enable recursive do (mdo) notation.
|
|
.TP
|
|
.B \fB\-XRoleAnnotations\fP
|
|
Enable role annotations.
|
|
.TP
|
|
.B \fB\-XSafe\fP
|
|
Enable the Safe Haskell Safe mode.
|
|
.TP
|
|
.B \fB\-XScopedTypeVariables\fP
|
|
Enable lexically\-scoped type variables.
|
|
.TP
|
|
.B \fB\-XStandaloneDeriving\fP
|
|
Enable standalone deriving.
|
|
.TP
|
|
.B \fB\-XStandaloneKindSignatures\fP
|
|
Allow the use of standalone kind signatures.
|
|
.TP
|
|
.B \fB\-XStarIsType\fP
|
|
Treat \fB*\fP as \fBData.Kind.Type\fP\&.
|
|
.TP
|
|
.B \fB\-XStaticPointers\fP
|
|
Enable static pointers.
|
|
.TP
|
|
.B \fB\-XStrict\fP
|
|
Make bindings in the current module strict by default.
|
|
.TP
|
|
.B \fB\-XStrictData\fP
|
|
Enable default strict datatype fields.
|
|
.TP
|
|
.B \fB\-XTemplateHaskell\fP
|
|
Enable Template Haskell.
|
|
.TP
|
|
.B \fB\-XTemplateHaskellQuotes\fP
|
|
Enable quotation subset of
|
|
Template Haskell\&.
|
|
.TP
|
|
.B \fB\-XTransformListComp\fP
|
|
Enable generalised list comprehensions.
|
|
.TP
|
|
.B \fB\-XTrustworthy\fP
|
|
Enable the Safe Haskell Trustworthy mode.
|
|
.TP
|
|
.B \fB\-XTupleSections\fP
|
|
Enable tuple sections.
|
|
.TP
|
|
.B \fB\-XTypeApplications\fP
|
|
Enable type application syntax in terms and types.
|
|
.TP
|
|
.B \fB\-XTypeFamilies\fP
|
|
Enable type families.
|
|
Implies \fBExplicitNamespaces\fP, \fBKindSignatures\fP,
|
|
and \fBMonoLocalBinds\fP\&.
|
|
.TP
|
|
.B \fB\-XTypeFamilyDependencies\fP
|
|
Enable injective type families.
|
|
Implies \fBTypeFamilies\fP\&.
|
|
.TP
|
|
.B \fB\-XTypeInType\fP
|
|
Deprecated. Enable kind polymorphism and datatype promotion.
|
|
.TP
|
|
.B \fB\-XTypeOperators\fP
|
|
Enable type operators.
|
|
Implies \fBExplicitNamespaces\fP\&.
|
|
.TP
|
|
.B \fB\-XTypeSynonymInstances\fP
|
|
Enable type synonyms in instance heads.
|
|
Implied by \fBFlexibleInstances\fP\&.
|
|
.TP
|
|
.B \fB\-XUnboxedSums\fP
|
|
Enable unboxed sums.
|
|
.TP
|
|
.B \fB\-XUnboxedTuples\fP
|
|
Enable the use of unboxed tuple syntax.
|
|
.TP
|
|
.B \fB\-XUndecidableInstances\fP
|
|
Enable undecidable instances.
|
|
.TP
|
|
.B \fB\-XUndecidableSuperClasses\fP
|
|
Allow all superclass constraints, including those that may
|
|
result in non\-termination of the typechecker.
|
|
.TP
|
|
.B \fB\-XUnicodeSyntax\fP
|
|
Enable unicode syntax.
|
|
.TP
|
|
.B \fB\-XUnliftedFFITypes\fP
|
|
Enable unlifted FFI types
|
|
.TP
|
|
.B \fB\-XUnliftedNewtypes\fP
|
|
Enable unlifted newtypes.
|
|
.TP
|
|
.B \fB\-XUnsafe\fP
|
|
Enable Safe Haskell Unsafe mode.
|
|
.TP
|
|
.B \fB\-XViewPatterns\fP
|
|
Enable view patterns.
|
|
.UNINDENT
|
|
.SS Linking options
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-c\fP
|
|
Stop after generating object (\fB\&.o\fP) file
|
|
.TP
|
|
.B \fB\-debug\fP
|
|
Use the debugging runtime
|
|
.TP
|
|
.B \fB\-dylib\-install\-name ⟨path⟩\fP
|
|
Set the install name (via \fB\-install_name\fP passed to Apple\(aqs
|
|
linker), specifying the full install path of the library file.
|
|
Any libraries or executables that link with it later will pick
|
|
up that path as their runtime search location for it.
|
|
(Darwin/OS X only)
|
|
.TP
|
|
.B \fB\-dynamic\fP
|
|
Build dynamically\-linked object files and executables
|
|
.TP
|
|
.B \fB\-dynload\fP
|
|
Selects one of a number of modes for finding shared libraries at runtime.
|
|
.TP
|
|
.B \fB\-eventlog\fP
|
|
Enable runtime event tracing
|
|
.TP
|
|
.B \fB\-fno\-embed\-manifest\fP
|
|
Do not embed the manifest in the executable (Windows only)
|
|
.TP
|
|
.B \fB\-fno\-gen\-manifest\fP
|
|
Do not generate a manifest file (Windows only)
|
|
.TP
|
|
.B \fB\-fno\-shared\-implib\fP
|
|
Don\(aqt generate an import library for a DLL (Windows only)
|
|
.TP
|
|
.B \fB\-framework ⟨name⟩\fP
|
|
On Darwin/OS X/iOS only, link in the framework ⟨name⟩. This
|
|
option corresponds to the \fB\-framework\fP option for Apple\(aqs Linker.
|
|
.TP
|
|
.B \fB\-framework\-path ⟨dir⟩\fP
|
|
On Darwin/OS X/iOS only, add ⟨dir⟩ to the list of directories
|
|
searched for frameworks. This option corresponds to the \fB\-F\fP
|
|
option for Apple\(aqs Linker.
|
|
.TP
|
|
.B \fB\-fwhole\-archive\-hs\-libs\fP
|
|
When linking a binary executable, this inserts the flag
|
|
\fB\-Wl,\-\-whole\-archive\fP before any \fB\-l\fP flags for Haskell
|
|
libraries, and \fB\-Wl,\-\-no\-whole\-archive\fP afterwards
|
|
.TP
|
|
.B \fB\-keep\-cafs\fP
|
|
Do not garbage\-collect CAFs (top\-level expressions) at runtime
|
|
.TP
|
|
.B \fB\-L ⟨dir⟩\fP
|
|
Add ⟨dir⟩ to the list of directories searched for libraries
|
|
.TP
|
|
.B \fB\-l ⟨lib⟩\fP
|
|
Link in library ⟨lib⟩
|
|
.TP
|
|
.B \fB\-main\-is ⟨thing⟩\fP
|
|
Set main module and function
|
|
.TP
|
|
.B \fB\-no\-hs\-main\fP
|
|
Don\(aqt assume this program contains \fBmain\fP
|
|
.TP
|
|
.B \fB\-no\-rtsopts\-suggestions\fP
|
|
Don\(aqt print RTS suggestions about linking with
|
|
\fB\-rtsopts[=⟨none|some|all|ignore|ignoreAll⟩]\fP\&.
|
|
.TP
|
|
.B \fB\-package ⟨name⟩\fP
|
|
Expose package ⟨pkg⟩
|
|
.TP
|
|
.B \fB\-pie\fP
|
|
Instruct the linker to produce a position\-independent executable.
|
|
.TP
|
|
.B \fB\-rdynamic\fP
|
|
This instructs the linker to add all symbols, not only used
|
|
ones, to the dynamic symbol table. Currently Linux and
|
|
Windows/MinGW32 only. This is equivalent to using
|
|
\fB\-optl \-rdynamic\fP on Linux, and \fB\-optl \-export\-all\-symbols\fP
|
|
on Windows.
|
|
.TP
|
|
.B \fB\-rtsopts[=⟨none|some|all|ignore|ignoreAll⟩]\fP
|
|
Control whether the RTS behaviour can be tweaked via command\-line
|
|
flags and the \fBGHCRTS\fP environment variable. Using \fBnone\fP
|
|
means no RTS flags can be given; \fBsome\fP means only a minimum
|
|
of safe options can be given (the default); \fBall\fP (or no
|
|
argument at all) means that all RTS flags are permitted; \fBignore\fP
|
|
means RTS flags can be given, but are treated as regular arguments and
|
|
passed to the Haskell program as arguments; \fBignoreAll\fP is the same as
|
|
\fBignore\fP, but \fBGHCRTS\fP is also ignored. \fB\-rtsopts\fP does not
|
|
affect \fB\-with\-rtsopts\fP behavior; flags passed via \fB\-with\-rtsopts\fP
|
|
are used regardless of \fB\-rtsopts\fP\&.
|
|
.TP
|
|
.B \fB\-shared\fP
|
|
Generate a shared library (as opposed to an executable)
|
|
.TP
|
|
.B \fB\-split\-sections\fP
|
|
Split sections for link\-time dead\-code stripping
|
|
.TP
|
|
.B \fB\-static\fP
|
|
Use static Haskell libraries
|
|
.TP
|
|
.B \fB\-staticlib\fP
|
|
Generate a standalone static library (as opposed to an
|
|
executable). This is useful when cross compiling. The
|
|
library together with all its dependencies ends up in in a
|
|
single static library that can be linked against.
|
|
.TP
|
|
.B \fB\-threaded\fP
|
|
Use the threaded runtime
|
|
.TP
|
|
.B \fB\-with\-rtsopts=⟨opts⟩\fP
|
|
Set the default RTS options to ⟨opts⟩.
|
|
.UNINDENT
|
|
.SS Miscellaneous options
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fexternal\-interpreter\fP
|
|
Run interpreted code in a separate process
|
|
.TP
|
|
.B \fB\-fglasgow\-exts\fP
|
|
Deprecated. Enable most language extensions;
|
|
see options\-language for exactly which ones.
|
|
.TP
|
|
.B \fB\-ghcversion\-file ⟨path to ghcversion.h⟩\fP
|
|
(GHC as a C compiler only) Use this \fBghcversion.h\fP file
|
|
.TP
|
|
.B \fB\-H ⟨size⟩\fP
|
|
Set the minimum size of the heap to ⟨size⟩
|
|
.TP
|
|
.B \fB\-j[⟨n⟩]\fP
|
|
When compiling with \fB\-\-make\fP, compile ⟨n⟩ modules
|
|
in parallel.
|
|
.UNINDENT
|
|
.SS Modes of operation
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-\-frontend ⟨module⟩\fP
|
|
run GHC with the given frontend plugin; see
|
|
frontend_plugins for details.
|
|
.TP
|
|
.B \fB\-\-help\fP
|
|
Display help
|
|
.TP
|
|
.B \fB\-\-info\fP
|
|
display information about the compiler
|
|
.TP
|
|
.B \fB\-\-interactive\fP
|
|
Interactive mode \- normally used by just running \fBghci\fP;
|
|
see ghci for details.
|
|
.TP
|
|
.B \fB\-\-make\fP
|
|
Build a multi\-module Haskell program, automatically figuring out
|
|
dependencies. Likely to be much easier, and faster, than using
|
|
\fBmake\fP; see make\-mode for details.
|
|
.TP
|
|
.B \fB\-\-mk\-dll\fP
|
|
DLL\-creation mode (Windows only)
|
|
.TP
|
|
.B \fB\-\-numeric\-version\fP
|
|
display GHC version (numeric only)
|
|
.TP
|
|
.B \fB\-\-print\-libdir\fP
|
|
display GHC library directory
|
|
.TP
|
|
.B \fB\-\-show\-iface ⟨file⟩\fP
|
|
display the contents of an interface file.
|
|
.TP
|
|
.B \fB\-\-show\-options\fP
|
|
display the supported command line options
|
|
.TP
|
|
.B \fB\-\-supported\-extensions\fP
|
|
display the supported language extensions
|
|
.TP
|
|
.B \fB\-\-version\fP
|
|
display GHC version
|
|
.TP
|
|
.B \fB\-e ⟨expr⟩\fP
|
|
Evaluate \fBexpr\fP; see eval\-mode for details.
|
|
.TP
|
|
.B \fB\-M\fP
|
|
generate dependency information suitable for use in a
|
|
\fBMakefile\fP; see makefile\-dependencies for details.
|
|
.UNINDENT
|
|
.SS Individual optimizations
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fasm\-shortcutting\fP
|
|
Enable shortcutting on assembly. Implied by \fB\-O2\fP\&.
|
|
.TP
|
|
.B \fB\-fbinary\-blob\-threshold=⟨n⟩\fP
|
|
\fIdefault: 500K.\fP Tweak assembly generator for binary blobs.
|
|
.TP
|
|
.B \fB\-fblock\-layout\-cfg\fP
|
|
Use the new cfg based block layout algorithm.
|
|
.TP
|
|
.B \fB\-fblock\-layout\-weightless\fP
|
|
Ignore cfg weights for code layout.
|
|
.TP
|
|
.B \fB\-fblock\-layout\-weights\fP
|
|
Sets edge weights used by the new code layout algorithm.
|
|
.TP
|
|
.B \fB\-fcall\-arity\fP
|
|
Enable call\-arity optimisation. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fcase\-folding\fP
|
|
Enable constant folding in case expressions. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fcase\-merge\fP
|
|
Enable case\-merging. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fcmm\-elim\-common\-blocks\fP
|
|
Enable Cmm common block elimination. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fcmm\-sink\fP
|
|
Enable Cmm sinking. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fcpr\-anal\fP
|
|
Turn on CPR analysis in the demand analyser. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fcross\-module\-specialise\fP
|
|
Turn on specialisation of overloaded functions imported from
|
|
other modules.
|
|
.TP
|
|
.B \fB\-fcse\fP
|
|
Enable common sub\-expression elimination. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fdicts\-cheap\fP
|
|
Make dictionary\-valued expressions seem cheap to the optimiser.
|
|
.TP
|
|
.B \fB\-fdicts\-strict\fP
|
|
Make dictionaries strict
|
|
.TP
|
|
.B \fB\-fdmd\-tx\-dict\-sel\fP
|
|
Use a special demand transformer for dictionary selectors.
|
|
Always enabled by default.
|
|
.TP
|
|
.B \fB\-fdo\-eta\-reduction\fP
|
|
Enable eta\-reduction. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fdo\-lambda\-eta\-expansion\fP
|
|
Enable lambda eta\-expansion. Always enabled by default.
|
|
.TP
|
|
.B \fB\-feager\-blackholing\fP
|
|
Turn on eager blackholing
|
|
.TP
|
|
.B \fB\-fenable\-rewrite\-rules\fP
|
|
Switch on all rewrite rules (including rules generated by
|
|
automatic specialisation of overloaded functions). Implied by
|
|
\fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fexcess\-precision\fP
|
|
Enable excess intermediate precision
|
|
.TP
|
|
.B \fB\-fexitification\fP
|
|
Enables exitification optimisation. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fexpose\-all\-unfoldings\fP
|
|
Expose all unfoldings, even for very large or recursive functions.
|
|
.TP
|
|
.B \fB\-ffloat\-in\fP
|
|
Turn on the float\-in transformation. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-ffull\-laziness\fP
|
|
Turn on full laziness (floating bindings outwards).
|
|
Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-ffun\-to\-thunk\fP
|
|
Allow worker\-wrapper to convert a function closure into a thunk
|
|
if the function does not use any of its arguments. Off by default.
|
|
.TP
|
|
.B \fB\-fignore\-asserts\fP
|
|
Ignore assertions in the source. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fignore\-interface\-pragmas\fP
|
|
Ignore pragmas in interface files. Implied by \fB\-O0\fP only.
|
|
.TP
|
|
.B \fB\-flate\-dmd\-anal\fP
|
|
Run demand analysis again, at the end of the
|
|
simplification pipeline
|
|
.TP
|
|
.B \fB\-flate\-specialise\fP
|
|
Run a late specialisation pass
|
|
.TP
|
|
.B \fB\-fliberate\-case\fP
|
|
Turn on the liberate\-case transformation. Implied by \fB\-O2\fP\&.
|
|
.TP
|
|
.B \fB\-fliberate\-case\-threshold=⟨n⟩\fP
|
|
\fIdefault: 2000.\fP Set the size threshold for the liberate\-case
|
|
transformation to ⟨n⟩
|
|
.TP
|
|
.B \fB\-fllvm\-pass\-vectors\-in\-regs\fP
|
|
Pass vector value in vector registers for function calls
|
|
.TP
|
|
.B \fB\-floopification\fP
|
|
Turn saturated self\-recursive tail\-calls into local jumps in the
|
|
generated assembly. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fmax\-inline\-alloc\-size=⟨n⟩\fP
|
|
\fIdefault: 128.\fP Set the maximum size of inline array allocations
|
|
to ⟨n⟩ bytes (default: 128).
|
|
.TP
|
|
.B \fB\-fmax\-inline\-memcpy\-insns=⟨n⟩\fP
|
|
\fIdefault: 32.\fP Inline \fBmemcpy\fP calls if they would generate no
|
|
more than ⟨n⟩ pseudo instructions.
|
|
.TP
|
|
.B \fB\-fmax\-inline\-memset\-insns=⟨n⟩\fP
|
|
\fIdefault: 32.\fP Inline \fBmemset\fP calls if they would generate no
|
|
more than ⟨n⟩ pseudo instructions
|
|
.TP
|
|
.B \fB\-fmax\-simplifier\-iterations=⟨n⟩\fP
|
|
\fIdefault: 4.\fP Set the max iterations for the simplifier.
|
|
.TP
|
|
.B \fB\-fmax\-uncovered\-patterns=⟨n⟩\fP
|
|
\fIdefault: 4.\fP Set the maximum number of patterns to display in
|
|
warnings about non\-exhaustive ones.
|
|
.TP
|
|
.B \fB\-fmax\-worker\-args=⟨n⟩\fP
|
|
\fIdefault: 10.\fP If a worker has that many arguments, none will
|
|
be unpacked anymore.
|
|
.TP
|
|
.B \fB\-fno\-opt\-coercion\fP
|
|
Turn off the coercion optimiser
|
|
.TP
|
|
.B \fB\-fno\-pre\-inlining\fP
|
|
Turn off pre\-inlining
|
|
.TP
|
|
.B \fB\-fno\-state\-hack\fP
|
|
Turn off the state hackwhereby any lambda with a real\-world
|
|
state token as argument is considered to be single\-entry. Hence
|
|
OK to inline things inside it.
|
|
.TP
|
|
.B \fB\-fomit\-interface\-pragmas\fP
|
|
Don\(aqt generate interface pragmas. Implied by \fB\-O0\fP only.
|
|
.TP
|
|
.B \fB\-fomit\-yields\fP
|
|
Omit heap checks when no allocation is being performed.
|
|
.TP
|
|
.B \fB\-foptimal\-applicative\-do\fP
|
|
Use a slower but better algorithm for ApplicativeDo
|
|
.TP
|
|
.B \fB\-fpedantic\-bottoms\fP
|
|
Make GHC be more precise about its treatment of bottom (but see
|
|
also \fB\-fno\-state\-hack\fP). In particular, GHC will not
|
|
eta\-expand through a case expression.
|
|
.TP
|
|
.B \fB\-fregs\-graph\fP
|
|
Use the graph colouring register allocator for register
|
|
allocation in the native code generator. Implied by \fB\-O2\fP\&.
|
|
.TP
|
|
.B \fB\-fregs\-iterative\fP
|
|
Use the iterative coalescing graph colouring register allocator
|
|
in the native code generator.
|
|
.TP
|
|
.B \fB\-fsimpl\-tick\-factor=⟨n⟩\fP
|
|
\fIdefault: 100.\fP Set the percentage factor for simplifier ticks.
|
|
.TP
|
|
.B \fB\-fsimplifier\-phases=⟨n⟩\fP
|
|
\fIdefault: 2.\fP Set the number of phases for the simplifier.
|
|
Ignored with \fB\-O0\fP\&.
|
|
.TP
|
|
.B \fB\-fsolve\-constant\-dicts\fP
|
|
When solving constraints, try to eagerly solve
|
|
super classes using available dictionaries.
|
|
.TP
|
|
.B \fB\-fspec\-constr\fP
|
|
Turn on the SpecConstr transformation. Implied by \fB\-O2\fP\&.
|
|
.TP
|
|
.B \fB\-fspec\-constr\-count=⟨n⟩\fP
|
|
default: 3.* Set to ⟨n⟩ the maximum number of specialisations that
|
|
will be created for any one function by the SpecConstr
|
|
transformation.
|
|
.TP
|
|
.B \fB\-fspec\-constr\-keen\fP
|
|
Specialize a call with an explicit constructor argument,
|
|
even if the argument is not scrutinised in the body of the function
|
|
.TP
|
|
.B \fB\-fspec\-constr\-threshold=⟨n⟩\fP
|
|
\fIdefault: 2000.\fP Set the size threshold for the SpecConstr
|
|
transformation to ⟨n⟩.
|
|
.TP
|
|
.B \fB\-fspecialise\fP
|
|
Turn on specialisation of overloaded functions. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-fspecialise\-aggressively\fP
|
|
Turn on specialisation of overloaded functions regardless of
|
|
size, if unfolding is available
|
|
.TP
|
|
.B \fB\-fstatic\-argument\-transformation\fP
|
|
Turn on the static argument transformation.
|
|
.TP
|
|
.B \fB\-fstg\-cse\fP
|
|
Enable common sub\-expression elimination on the STG
|
|
intermediate language
|
|
.TP
|
|
.B \fB\-fstg\-lift\-lams\fP
|
|
Enable late lambda lifting on the STG intermediate
|
|
language. Implied by \fB\-O2\fP\&.
|
|
.TP
|
|
.B \fB\-fstg\-lift\-lams\-known\fP
|
|
Allow turning known into unknown calls while performing
|
|
late lambda lifting.
|
|
.TP
|
|
.B \fB\-fstg\-lift\-lams\-non\-rec\-args\fP
|
|
Create top\-level non\-recursive functions with at most <n>
|
|
parameters while performing late lambda lifting.
|
|
.TP
|
|
.B \fB\-fstg\-lift\-lams\-rec\-args\fP
|
|
Create top\-level recursive functions with at most <n>
|
|
parameters while performing late lambda lifting.
|
|
.TP
|
|
.B \fB\-fstrictness\fP
|
|
Turn on strictness analysis.
|
|
Implied by \fB\-O\fP\&. Implies \fB\-fworker\-wrapper\fP
|
|
.TP
|
|
.B \fB\-fstrictness\-before=⟨n⟩\fP
|
|
Run an additional strictness analysis before simplifier phase ⟨n⟩
|
|
.TP
|
|
.B \fB\-funbox\-small\-strict\-fields\fP
|
|
Flatten strict constructor fields with a pointer\-sized
|
|
representation. Implied by \fB\-O\fP\&.
|
|
.TP
|
|
.B \fB\-funbox\-strict\-fields\fP
|
|
Flatten strict constructor fields
|
|
.TP
|
|
.B \fB\-funfolding\-creation\-threshold=⟨n⟩\fP
|
|
\fIdefault: 750.\fP Tweak unfolding settings.
|
|
.TP
|
|
.B \fB\-funfolding\-dict\-discount=⟨n⟩\fP
|
|
\fIdefault: 30.\fP Tweak unfolding settings.
|
|
.TP
|
|
.B \fB\-funfolding\-fun\-discount=⟨n⟩\fP
|
|
\fIdefault: 60.\fP Tweak unfolding settings.
|
|
.TP
|
|
.B \fB\-funfolding\-keeness\-factor=⟨n⟩\fP
|
|
\fIdefault: 1.5.\fP Tweak unfolding settings.
|
|
.TP
|
|
.B \fB\-funfolding\-use\-threshold=⟨n⟩\fP
|
|
\fIdefault: 60.\fP Tweak unfolding settings.
|
|
.TP
|
|
.B \fB\-fworker\-wrapper\fP
|
|
Enable the worker\-wrapper transformation.
|
|
.UNINDENT
|
|
.SS Optimization levels
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-O\fP
|
|
Enable level 1 optimisations
|
|
.TP
|
|
.B \fB\-O0\fP
|
|
Disable optimisations (default)
|
|
.TP
|
|
.B \fB\-O2\fP
|
|
Enable level 2 optimisations
|
|
.TP
|
|
.B \fB\-O⟨n⟩\fP
|
|
Any \-On where n > 2 is the same as \-O2.
|
|
.UNINDENT
|
|
.SS Package options
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-clear\-package\-db\fP
|
|
Clear the package db stack.
|
|
.TP
|
|
.B \fB\-distrust ⟨pkg⟩\fP
|
|
Expose package ⟨pkg⟩ and set it to be distrusted. See
|
|
safe\-haskell\&.
|
|
.TP
|
|
.B \fB\-distrust\-all\-packages\fP
|
|
Distrust all packages by default. See safe\-haskell\&.
|
|
.TP
|
|
.B \fB\-fpackage\-trust\fP
|
|
Enable Safe Haskell trusted package
|
|
requirement for trustworthy modules.
|
|
.TP
|
|
.B \fB\-global\-package\-db\fP
|
|
Add the global package db to the stack.
|
|
.TP
|
|
.B \fB\-hide\-all\-packages\fP
|
|
Hide all packages by default
|
|
.TP
|
|
.B \fB\-hide\-package ⟨pkg⟩\fP
|
|
Hide package ⟨pkg⟩
|
|
.TP
|
|
.B \fB\-ignore\-package ⟨pkg⟩\fP
|
|
Ignore package ⟨pkg⟩
|
|
.TP
|
|
.B \fB\-no\-auto\-link\-packages\fP
|
|
Don\(aqt automatically link in the base and rts packages.
|
|
.TP
|
|
.B \fB\-no\-global\-package\-db\fP
|
|
Remove the global package db from the stack.
|
|
.TP
|
|
.B \fB\-no\-user\-package\-db\fP
|
|
Remove the user\(aqs package db from the stack.
|
|
.TP
|
|
.B \fB\-package ⟨pkg⟩\fP
|
|
Expose package ⟨pkg⟩
|
|
.TP
|
|
.B \fB\-package\-db ⟨file⟩\fP
|
|
Add ⟨file⟩ to the package db stack.
|
|
.TP
|
|
.B \fB\-package\-env ⟨file⟩|⟨name⟩\fP
|
|
Use the specified package environment.
|
|
.TP
|
|
.B \fB\-package\-id ⟨unit\-id⟩\fP
|
|
Expose package by id ⟨unit\-id⟩
|
|
.TP
|
|
.B \fB\-this\-unit\-id ⟨unit\-id⟩\fP
|
|
Compile to be part of unit (i.e. package)
|
|
⟨unit\-id⟩
|
|
.TP
|
|
.B \fB\-trust ⟨pkg⟩\fP
|
|
Expose package ⟨pkg⟩ and set it to be trusted. See
|
|
safe\-haskell\&.
|
|
.TP
|
|
.B \fB\-user\-package\-db\fP
|
|
Add the user\(aqs package db to the stack.
|
|
.UNINDENT
|
|
.SS Phases of compilation
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-C\fP
|
|
Stop after generating C (\fB\&.hc\fP file)
|
|
.TP
|
|
.B \fB\-c\fP
|
|
Stop after generating object (\fB\&.o\fP) file
|
|
.TP
|
|
.B \fB\-E\fP
|
|
Stop after preprocessing (\fB\&.hspp\fP file)
|
|
.TP
|
|
.B \fB\-F\fP
|
|
Enable the use of a pre\-processor
|
|
(set with \fB\-pgmF ⟨cmd⟩\fP)
|
|
.TP
|
|
.B \fB\-S\fP
|
|
Stop after generating assembly (\fB\&.s\fP file)
|
|
.TP
|
|
.B \fB\-x ⟨suffix⟩\fP
|
|
Override default behaviour for source files
|
|
.UNINDENT
|
|
.SS Overriding external programs
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-pgma ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the assembler
|
|
.TP
|
|
.B \fB\-pgmc ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the C compiler
|
|
.TP
|
|
.B \fB\-pgmdll ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the DLL generator
|
|
.TP
|
|
.B \fB\-pgmF ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the pre\-processor (with \fB\-F\fP only)
|
|
.TP
|
|
.B \fB\-pgmi ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the external interpreter command.
|
|
.TP
|
|
.B \fB\-pgminstall_name_tool ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the program to inject \fBrunpath\fP into mach\-o dylibs on macOS
|
|
.TP
|
|
.B \fB\-pgmL ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the literate pre\-processor
|
|
.TP
|
|
.B \fB\-pgml ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the linker
|
|
.TP
|
|
.B \fB\-pgmlc ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the LLVM compiler
|
|
.TP
|
|
.B \fB\-pgmlibtool ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the command for libtool (with \fB\-staticlib\fP only).
|
|
.TP
|
|
.B \fB\-pgmlm ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the linker when merging object files
|
|
.TP
|
|
.B \fB\-pgmlo ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the LLVM optimiser
|
|
.TP
|
|
.B \fB\-pgmotool ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the program to inspect mach\-o dylibs on macOS
|
|
.TP
|
|
.B \fB\-pgmP ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the C pre\-processor (with \fB\-cpp\fP only)
|
|
.TP
|
|
.B \fB\-pgms ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the splitter
|
|
.TP
|
|
.B \fB\-pgmwindres ⟨cmd⟩\fP
|
|
Use ⟨cmd⟩ as the program for embedding manifests on Windows.
|
|
.UNINDENT
|
|
.SS Phase\-specific options
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-opta ⟨option⟩\fP
|
|
pass ⟨option⟩ to the assembler
|
|
.TP
|
|
.B \fB\-optc ⟨option⟩\fP
|
|
pass ⟨option⟩ to the C compiler
|
|
.TP
|
|
.B \fB\-optcxx ⟨option⟩\fP
|
|
pass ⟨option⟩ to the C++ compiler
|
|
.TP
|
|
.B \fB\-optdll ⟨option⟩\fP
|
|
pass ⟨option⟩ to the DLL generator
|
|
.TP
|
|
.B \fB\-optF ⟨option⟩\fP
|
|
pass ⟨option⟩ to the custom pre\-processor
|
|
.TP
|
|
.B \fB\-opti ⟨option⟩\fP
|
|
pass ⟨option⟩ to the interpreter sub\-process.
|
|
.TP
|
|
.B \fB\-optL ⟨option⟩\fP
|
|
pass ⟨option⟩ to the literate pre\-processor
|
|
.TP
|
|
.B \fB\-optl ⟨option⟩\fP
|
|
pass ⟨option⟩ to the linker
|
|
.TP
|
|
.B \fB\-optlc ⟨option⟩\fP
|
|
pass ⟨option⟩ to the LLVM compiler
|
|
.TP
|
|
.B \fB\-optlm ⟨option⟩\fP
|
|
pass ⟨option⟩ to the linker when merging object files.
|
|
.TP
|
|
.B \fB\-optlo ⟨option⟩\fP
|
|
pass ⟨option⟩ to the LLVM optimiser
|
|
.TP
|
|
.B \fB\-optP ⟨option⟩\fP
|
|
pass ⟨option⟩ to cpp (with \fB\-cpp\fP only)
|
|
.TP
|
|
.B \fB\-optwindres ⟨option⟩\fP
|
|
pass ⟨option⟩ to \fBwindres\fP\&.
|
|
.TP
|
|
.B \fB\-pgmc\-supports\-no\-pie\fP
|
|
Indicate that the C compiler supports \fB\-no\-pie\fP
|
|
.UNINDENT
|
|
.SS Platform\-specific options
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-mbmi2\fP
|
|
(x86 only) Use BMI2 for bit manipulation operations
|
|
.TP
|
|
.B \fB\-msse2\fP
|
|
(x86 only) Use SSE2 for floating\-point operations
|
|
.TP
|
|
.B \fB\-msse4.2\fP
|
|
(x86 only) Use SSE4.2 for floating\-point operations
|
|
.UNINDENT
|
|
.SS Compiler plugins
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fclear\-plugins\fP
|
|
Clear the list of active plugins
|
|
.TP
|
|
.B \fB\-fplugin\-opt=⟨module⟩:⟨args⟩\fP
|
|
Give arguments to a plugin module; module must be specified with
|
|
\fB\-fplugin=⟨module⟩\fP
|
|
.TP
|
|
.B \fB\-fplugin\-trustworthy\fP
|
|
Trust the used plugins and no longer mark the compiled module
|
|
as unsafe
|
|
.TP
|
|
.B \fB\-fplugin=⟨module⟩\fP
|
|
Load a plugin exported by a given module
|
|
.TP
|
|
.B \fB\-hide\-all\-plugin\-packages\fP
|
|
Hide all packages for plugins by default
|
|
.TP
|
|
.B \fB\-plugin\-package ⟨pkg⟩\fP
|
|
Expose ⟨pkg⟩ for plugins
|
|
.TP
|
|
.B \fB\-plugin\-package\-id ⟨pkg\-id⟩\fP
|
|
Expose ⟨pkg\-id⟩ for plugins
|
|
.UNINDENT
|
|
.SS Profiling
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fno\-prof\-auto\fP
|
|
Disables any previous \fB\-fprof\-auto\fP,
|
|
\fB\-fprof\-auto\-top\fP, or \fB\-fprof\-auto\-exported\fP options.
|
|
.TP
|
|
.B \fB\-fno\-prof\-cafs\fP
|
|
Disables any previous \fB\-fprof\-cafs\fP option.
|
|
.TP
|
|
.B \fB\-fno\-prof\-count\-entries\fP
|
|
Do not collect entry counts
|
|
.TP
|
|
.B \fB\-fprof\-auto\fP
|
|
Auto\-add \fBSCC\fP\e s to all bindings not marked INLINE
|
|
.TP
|
|
.B \fB\-fprof\-auto\-calls\fP
|
|
Auto\-add \fBSCC\fP\e s to all call sites
|
|
.TP
|
|
.B \fB\-fprof\-auto\-exported\fP
|
|
Auto\-add \fBSCC\fP\e s to all exported bindings not marked INLINE
|
|
.TP
|
|
.B \fB\-fprof\-auto\-top\fP
|
|
Auto\-add \fBSCC\fP\e s to all top\-level bindings not marked INLINE
|
|
.TP
|
|
.B \fB\-fprof\-cafs\fP
|
|
Auto\-add \fBSCC\fP\e s to all CAFs
|
|
.TP
|
|
.B \fB\-prof\fP
|
|
Turn on profiling
|
|
.TP
|
|
.B \fB\-ticky\fP
|
|
Turn on ticky\-ticky profiling
|
|
.UNINDENT
|
|
.SS Program coverage
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fhpc\fP
|
|
Turn on Haskell program coverage instrumentation
|
|
.UNINDENT
|
|
.SS Recompilation checking
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fforce\-recomp\fP
|
|
Turn off recompilation checking. This is implied by any
|
|
\fB\-ddump\-X\fP option when compiling a single file
|
|
(i.e. when using \fB\-c\fP).
|
|
.TP
|
|
.B \fB\-fignore\-hpc\-changes\fP
|
|
Do not recompile modules just to match changes to
|
|
HPC flags. This is especially useful for avoiding recompilation
|
|
when using GHCi, and is enabled by default for GHCi.
|
|
.TP
|
|
.B \fB\-fignore\-optim\-changes\fP
|
|
Do not recompile modules just to match changes to
|
|
optimisation flags. This is especially useful for avoiding
|
|
recompilation when using GHCi, and is enabled by default for
|
|
GHCi.
|
|
.UNINDENT
|
|
.SS Redirecting output
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-\-exclude\-module=⟨file⟩\fP
|
|
Regard \fB⟨file⟩\fP as "stable"; i.e., exclude it from having
|
|
dependencies on it.
|
|
.TP
|
|
.B \fB\-ddump\-mod\-cycles\fP
|
|
Dump module cycles
|
|
.TP
|
|
.B \fB\-dep\-makefile ⟨file⟩\fP
|
|
Use ⟨file⟩ as the makefile
|
|
.TP
|
|
.B \fB\-dep\-suffix ⟨suffix⟩\fP
|
|
Make dependencies that declare that files with suffix
|
|
\fB\&.⟨suf⟩⟨osuf⟩\fP depend on interface files with suffix \fB\&.⟨suf⟩hi\fP
|
|
.TP
|
|
.B \fB\-dumpdir ⟨dir⟩\fP
|
|
redirect dump files
|
|
.TP
|
|
.B \fB\-hcsuf ⟨suffix⟩\fP
|
|
set the suffix to use for intermediate C files
|
|
.TP
|
|
.B \fB\-hidir ⟨dir⟩\fP
|
|
set directory for interface files
|
|
.TP
|
|
.B \fB\-hiedir ⟨dir⟩\fP
|
|
set directory for extended interface files
|
|
.TP
|
|
.B \fB\-hiesuf ⟨suffix⟩\fP
|
|
set the suffix to use for extended interface files
|
|
.TP
|
|
.B \fB\-hisuf ⟨suffix⟩\fP
|
|
set the suffix to use for interface files
|
|
.TP
|
|
.B \fB\-include\-cpp\-deps\fP
|
|
Include preprocessor dependencies
|
|
.TP
|
|
.B \fB\-include\-pkg\-deps\fP
|
|
Regard modules imported from packages as unstable
|
|
.TP
|
|
.B \fB\-o ⟨file⟩\fP
|
|
set output filename
|
|
.TP
|
|
.B \fB\-odir ⟨dir⟩\fP
|
|
set directory for object files
|
|
.TP
|
|
.B \fB\-ohi ⟨file⟩\fP
|
|
set the filename in which to put the interface
|
|
.TP
|
|
.B \fB\-osuf ⟨suffix⟩\fP
|
|
set the output file suffix
|
|
.TP
|
|
.B \fB\-outputdir ⟨dir⟩\fP
|
|
set output directory
|
|
.TP
|
|
.B \fB\-stubdir ⟨dir⟩\fP
|
|
redirect FFI stub files
|
|
.UNINDENT
|
|
.SS Temporary files
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-tmpdir ⟨dir⟩\fP
|
|
set the directory for temporary files
|
|
.UNINDENT
|
|
.SS Verbosity options
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fabstract\-refinement\-hole\-fits\fP
|
|
\fIdefault: off.\fP Toggles whether refinements where one or more
|
|
of the holes are abstract are reported.
|
|
.TP
|
|
.B \fB\-fdefer\-diagnostics\fP
|
|
Defer and group diagnostic messages by severity
|
|
.TP
|
|
.B \fB\-fdiagnostics\-color=⟨always|auto|never⟩\fP
|
|
Use colors in error messages
|
|
.TP
|
|
.B \fB\-fdiagnostics\-show\-caret\fP
|
|
Whether to show snippets of original source code
|
|
.TP
|
|
.B \fB\-ferror\-spans\fP
|
|
Output full span in error messages
|
|
.TP
|
|
.B \fB\-fhide\-source\-paths\fP
|
|
hide module source and object paths
|
|
.TP
|
|
.B \fB\-fkeep\-going\fP
|
|
Continue compilation as far as possible on errors
|
|
.TP
|
|
.B \fB\-fmax\-refinement\-hole\-fits=⟨n⟩\fP
|
|
\fIdefault: 6.\fP Set the maximum number of refinement hole fits
|
|
for typed holes to display in type error messages.
|
|
.TP
|
|
.B \fB\-fmax\-relevant\-binds=⟨n⟩\fP
|
|
\fIdefault: 6.\fP Set the maximum number of bindings to display in
|
|
type error messages.
|
|
.TP
|
|
.B \fB\-fmax\-valid\-hole\-fits=⟨n⟩\fP
|
|
\fIdefault: 6.\fP Set the maximum number of valid hole fits for
|
|
typed holes to display in type error messages.
|
|
.TP
|
|
.B \fB\-fno\-show\-valid\-hole\-fits\fP
|
|
Disables showing a list of valid hole fits for typed holes
|
|
in type error messages.
|
|
.TP
|
|
.B \fB\-fno\-sort\-valid\-hole\-fits\fP
|
|
Disables the sorting of the list of valid hole fits for typed holes
|
|
in type error messages.
|
|
.TP
|
|
.B \fB\-fprint\-axiom\-incomps\fP
|
|
Display equation incompatibilities in closed type families
|
|
.TP
|
|
.B \fB\-fprint\-equality\-relations\fP
|
|
Distinguish between equality relations when printing
|
|
.TP
|
|
.B \fB\-fprint\-expanded\-synonyms\fP
|
|
In type errors, also print type\-synonym\-expanded types.
|
|
.TP
|
|
.B \fB\-fprint\-explicit\-coercions\fP
|
|
Print coercions in types
|
|
.TP
|
|
.B \fB\-fprint\-explicit\-foralls\fP
|
|
Print explicit \fBforall\fP quantification in types.
|
|
See also \fBExplicitForAll\fP
|
|
.TP
|
|
.B \fB\-fprint\-explicit\-kinds\fP
|
|
Print explicit kind foralls and kind arguments in types.
|
|
See also \fBKindSignatures\fP
|
|
.TP
|
|
.B \fB\-fprint\-explicit\-runtime\-reps\fP
|
|
Print \fBRuntimeRep\fP variables in types which are
|
|
runtime\-representation polymorphic.
|
|
.TP
|
|
.B \fB\-fprint\-potential\-instances\fP
|
|
display all available instances in type error messages
|
|
.TP
|
|
.B \fB\-fprint\-typechecker\-elaboration\fP
|
|
Print extra information from typechecker.
|
|
.TP
|
|
.B \fB\-fprint\-unicode\-syntax\fP
|
|
Use unicode syntax when printing expressions, types and kinds.
|
|
See also \fBUnicodeSyntax\fP
|
|
.TP
|
|
.B \fB\-frefinement\-level\-hole\-fits=⟨n⟩\fP
|
|
\fIdefault: off.\fP Sets the level of refinement of the
|
|
refinement hole fits, where level \fBn\fP means that hole fits
|
|
of up to \fBn\fP holes will be considered.
|
|
.TP
|
|
.B \fB\-freverse\-errors\fP
|
|
Output errors in reverse order
|
|
.TP
|
|
.B \fB\-fshow\-docs\-of\-hole\-fits\fP
|
|
Toggles whether to show the documentation of the valid
|
|
hole fits in the output.
|
|
.TP
|
|
.B \fB\-fshow\-hole\-constraints\fP
|
|
Show constraints when reporting typed holes.
|
|
.TP
|
|
.B \fB\-fshow\-hole\-matches\-of\-hole\-fits\fP
|
|
Toggles whether to show the type of the additional holes
|
|
in refinement hole fits.
|
|
.TP
|
|
.B \fB\-fshow\-provenance\-of\-hole\-fits\fP
|
|
Toggles whether to show the provenance of the valid hole fits
|
|
in the output.
|
|
.TP
|
|
.B \fB\-fshow\-type\-app\-of\-hole\-fits\fP
|
|
Toggles whether to show the type application of the valid
|
|
hole fits in the output.
|
|
.TP
|
|
.B \fB\-fshow\-type\-app\-vars\-of\-hole\-fits\fP
|
|
Toggles whether to show what type each quantified
|
|
variable takes in a valid hole fit.
|
|
.TP
|
|
.B \fB\-fshow\-type\-of\-hole\-fits\fP
|
|
Toggles whether to show the type of the valid hole fits
|
|
in the output.
|
|
.TP
|
|
.B \fB\-funclutter\-valid\-hole\-fits\fP
|
|
Unclutter the list of valid hole fits by not showing
|
|
provenance nor type applications of suggestions.
|
|
.TP
|
|
.B \fB\-Rghc\-timing\fP
|
|
Summarise timing stats for GHC (same as \fB+RTS \-tstderr\fP).
|
|
.TP
|
|
.B \fB\-v\fP
|
|
verbose mode (equivalent to \fB\-v3\fP)
|
|
.TP
|
|
.B \fB\-v⟨n⟩\fP
|
|
set verbosity level
|
|
.UNINDENT
|
|
.SS Warnings
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \fB\-fdefer\-out\-of\-scope\-variables\fP
|
|
Convert variable out of scope variables errors into warnings.
|
|
Implied by \fB\-fdefer\-type\-errors\fP\&.
|
|
See also \fB\-Wdeferred\-out\-of\-scope\-variables\fP\&.
|
|
.TP
|
|
.B \fB\-fdefer\-type\-errors\fP
|
|
Turn type errors into warnings, deferring the error until
|
|
runtime\&. Implies
|
|
\fB\-fdefer\-typed\-holes\fP and
|
|
\fB\-fdefer\-out\-of\-scope\-variables\fP\&.
|
|
See also \fB\-Wdeferred\-type\-errors\fP
|
|
.TP
|
|
.B \fB\-fdefer\-typed\-holes\fP
|
|
Convert typed hole errors into warnings,
|
|
deferring the error until runtime\&.
|
|
Implied by \fB\-fdefer\-type\-errors\fP\&.
|
|
See also \fB\-Wtyped\-holes\fP\&.
|
|
.TP
|
|
.B \fB\-fenable\-th\-splice\-warnings\fP
|
|
Generate warnings for Template Haskell splices
|
|
.TP
|
|
.B \fB\-fhelpful\-errors\fP
|
|
Make suggestions for mis\-spelled names.
|
|
.TP
|
|
.B \fB\-fmax\-pmcheck\-models=⟨n⟩\fP
|
|
soft limit on the number of parallel models the pattern match
|
|
checker should check a pattern match clause against
|
|
.TP
|
|
.B \fB\-fshow\-warning\-groups\fP
|
|
show which group an emitted warning belongs to.
|
|
.TP
|
|
.B \fB\-fvia\-C\fP
|
|
use the C code generator
|
|
.TP
|
|
.B \fB\-W\fP
|
|
enable normal warnings
|
|
.TP
|
|
.B \fB\-w\fP
|
|
disable all warnings
|
|
.TP
|
|
.B \fB\-Wall\fP
|
|
enable almost all warnings (details in options\-sanity)
|
|
.TP
|
|
.B \fB\-Wall\-missed\-specialisations\fP
|
|
warn when specialisation of any overloaded function fails.
|
|
.TP
|
|
.B \fB\-Wcompat\fP
|
|
enable future compatibility warnings
|
|
(details in options\-sanity)
|
|
.TP
|
|
.B \fB\-Wcompat\-unqualified\-imports\fP
|
|
Report unqualified imports of core libraries which are expected
|
|
to cause compatibility problems in future releases.
|
|
.TP
|
|
.B \fB\-Wcpp\-undef\fP
|
|
warn on uses of the \fI#if\fP directive on undefined identifiers
|
|
.TP
|
|
.B \fB\-Wdeferred\-out\-of\-scope\-variables\fP
|
|
Report warnings when variable out\-of\-scope errors are
|
|
deferred until runtime\&.
|
|
See \fB\-fdefer\-out\-of\-scope\-variables\fP\&.
|
|
.TP
|
|
.B \fB\-Wdeferred\-type\-errors\fP
|
|
Report warnings when deferred type errors are enabled. This option is enabled by
|
|
default. See \fB\-fdefer\-type\-errors\fP\&.
|
|
.TP
|
|
.B \fB\-Wdeprecated\-flags\fP
|
|
warn about uses of commandline flags that are deprecated
|
|
.TP
|
|
.B \fB\-Wdeprecations\fP
|
|
warn about uses of functions & types that have warnings or
|
|
deprecated pragmas. Alias for \fB\-Wwarnings\-deprecations\fP
|
|
.TP
|
|
.B \fB\-Wderiving\-defaults\fP
|
|
warn about default deriving when using both
|
|
\fBDeriveAnyClass\fP and \fBGeneralizedNewtypeDeriving\fP
|
|
.TP
|
|
.B \fB\-Wdodgy\-exports\fP
|
|
warn about dodgy exports
|
|
.TP
|
|
.B \fB\-Wdodgy\-foreign\-imports\fP
|
|
warn about dodgy foreign imports
|
|
.TP
|
|
.B \fB\-Wdodgy\-imports\fP
|
|
warn about dodgy imports
|
|
.TP
|
|
.B \fB\-Wduplicate\-constraints\fP
|
|
warn when a constraint appears duplicated in a type signature
|
|
.TP
|
|
.B \fB\-Wduplicate\-exports\fP
|
|
warn when an entity is exported multiple times
|
|
.TP
|
|
.B \fB\-Wempty\-enumerations\fP
|
|
warn about enumerations that are empty
|
|
.TP
|
|
.B \fB\-Werror\fP
|
|
make warnings fatal
|
|
.TP
|
|
.B \fB\-Weverything\fP
|
|
enable all warnings supported by GHC
|
|
.TP
|
|
.B \fB\-Whi\-shadowing\fP
|
|
\fI(deprecated)\fP
|
|
warn when a \fB\&.hi\fP file in the current directory shadows a library
|
|
.TP
|
|
.B \fB\-Widentities\fP
|
|
warn about uses of Prelude numeric conversions that are probably
|
|
the identity (and hence could be omitted)
|
|
.TP
|
|
.B \fB\-Wimplicit\-kind\-vars\fP
|
|
warn when kind variables are implicitly quantified over.
|
|
.TP
|
|
.B \fB\-Wimplicit\-prelude\fP
|
|
warn when the Prelude is implicitly imported
|
|
.TP
|
|
.B \fB\-Winaccessible\-code\fP
|
|
warn about inaccessible code
|
|
.TP
|
|
.B \fB\-Wincomplete\-patterns\fP
|
|
warn when a pattern match could fail
|
|
.TP
|
|
.B \fB\-Wincomplete\-record\-updates\fP
|
|
warn when a record update could fail
|
|
.TP
|
|
.B \fB\-Wincomplete\-uni\-patterns\fP
|
|
warn when a pattern match in a lambda expression or
|
|
pattern binding could fail
|
|
.TP
|
|
.B \fB\-Winline\-rule\-shadowing\fP
|
|
Warn if a rewrite RULE might fail to fire because the
|
|
function might be inlined before the rule has a chance to fire.
|
|
See rules\-inline\&.
|
|
.TP
|
|
.B \fB\-Wmissed\-extra\-shared\-lib\fP
|
|
Warn when GHCi can\(aqt load a shared lib.
|
|
.TP
|
|
.B \fB\-Wmissed\-specialisations\fP
|
|
warn when specialisation of an imported, overloaded function
|
|
fails.
|
|
.TP
|
|
.B \fB\-Wmissing\-deriving\-strategies\fP
|
|
warn when a deriving clause is missing a deriving strategy
|
|
.TP
|
|
.B \fB\-Wmissing\-export\-lists\fP
|
|
warn when a module declaration does not explicitly list all
|
|
exports
|
|
.TP
|
|
.B \fB\-Wmissing\-exported\-signatures\fP
|
|
warn about top\-level functions without signatures, only if they
|
|
are exported. takes precedence over \-Wmissing\-signatures
|
|
.TP
|
|
.B \fB\-Wmissing\-exported\-sigs\fP
|
|
\fI(deprecated)\fP
|
|
warn about top\-level functions without signatures, only if they
|
|
are exported. takes precedence over \-Wmissing\-signatures
|
|
.TP
|
|
.B \fB\-Wmissing\-fields\fP
|
|
warn when fields of a record are uninitialised
|
|
.TP
|
|
.B \fB\-Wmissing\-home\-modules\fP
|
|
warn when encountering a home module imported, but not listed
|
|
on the command line. Useful for cabal to ensure GHC won\(aqt pick
|
|
up modules, not listed neither in \fBexposed\-modules\fP, nor in
|
|
\fBother\-modules\fP\&.
|
|
.TP
|
|
.B \fB\-Wmissing\-import\-lists\fP
|
|
warn when an import declaration does not explicitly list all the
|
|
names brought into scope
|
|
.TP
|
|
.B \fB\-Wmissing\-local\-signatures\fP
|
|
warn about polymorphic local bindings without signatures
|
|
.TP
|
|
.B \fB\-Wmissing\-local\-sigs\fP
|
|
\fI(deprecated)\fP
|
|
warn about polymorphic local bindings without signatures
|
|
.TP
|
|
.B \fB\-Wmissing\-methods\fP
|
|
warn when class methods are undefined
|
|
.TP
|
|
.B \fB\-Wmissing\-monadfail\-instances\fP
|
|
Warn when a failable pattern is used in a do\-block that does
|
|
not have a \fBMonadFail\fP instance.
|
|
.TP
|
|
.B \fB\-Wmissing\-pattern\-synonym\-signatures\fP
|
|
warn when pattern synonyms do not have type signatures
|
|
.TP
|
|
.B \fB\-Wmissing\-signatures\fP
|
|
warn about top\-level functions without signatures
|
|
.TP
|
|
.B \fB\-Wmonomorphism\-restriction\fP
|
|
warn when the Monomorphism Restriction is applied
|
|
.TP
|
|
.B \fB\-Wname\-shadowing\fP
|
|
warn when names are shadowed
|
|
.TP
|
|
.B \fB\-Wno\-compat\fP
|
|
Disables all warnings enabled by \fB\-Wcompat\fP\&.
|
|
.TP
|
|
.B \fB\-Wnoncanonical\-monad\-instances\fP
|
|
warn when \fBApplicative\fP or \fBMonad\fP instances have
|
|
noncanonical definitions of \fBreturn\fP, \fBpure\fP, \fB(>>)\fP,
|
|
or \fB(*>)\fP\&.
|
|
See flag description in options\-sanity for more details.
|
|
.TP
|
|
.B \fB\-Wnoncanonical\-monadfail\-instances\fP
|
|
warn when \fBMonad\fP or \fBMonadFail\fP instances have
|
|
noncanonical definitions of \fBfail\fP\&.
|
|
See flag description in options\-sanity for more details.
|
|
.TP
|
|
.B \fB\-Wnoncanonical\-monoid\-instances\fP
|
|
warn when \fBSemigroup\fP or \fBMonoid\fP instances have
|
|
noncanonical definitions of \fB(<>)\fP or \fBmappend\fP\&.
|
|
See flag description in options\-sanity for more details.
|
|
.TP
|
|
.B \fB\-Worphans\fP
|
|
warn when the module contains orphan instance declarations
|
|
or rewrite rules
|
|
.TP
|
|
.B \fB\-Woverflowed\-literals\fP
|
|
warn about literals that will overflow their type
|
|
.TP
|
|
.B \fB\-Woverlapping\-patterns\fP
|
|
warn about overlapping patterns
|
|
.TP
|
|
.B \fB\-Wpartial\-fields\fP
|
|
warn when defining a partial record field.
|
|
.TP
|
|
.B \fB\-Wpartial\-type\-signatures\fP
|
|
warn about holes in partial type signatures when
|
|
\fBPartialTypeSignatures\fP is enabled. Not applicable when
|
|
\fBPartialTypeSignatures\fP is not enabled, in which case
|
|
errors are generated for such holes.
|
|
.TP
|
|
.B \fB\-Wredundant\-constraints\fP
|
|
Have the compiler warn about redundant constraints in type
|
|
signatures.
|
|
.TP
|
|
.B \fB\-Wredundant\-record\-wildcards\fP
|
|
Warn about record wildcard matches when the wildcard binds no patterns.
|
|
.TP
|
|
.B \fB\-Wsafe\fP
|
|
warn if the module being compiled is regarded to be safe.
|
|
.TP
|
|
.B \fB\-Wsemigroup\fP
|
|
warn when a \fBMonoid\fP is not \fBSemigroup\fP, and on non\-
|
|
\fBSemigroup\fP definitions of \fB(<>)\fP?
|
|
.TP
|
|
.B \fB\-Wsimplifiable\-class\-constraints\fP
|
|
Warn about class constraints in a type signature that can
|
|
be simplified using a top\-level instance declaration.
|
|
.TP
|
|
.B \fB\-Wspace\-after\-bang\fP
|
|
warn for missing space before the second argument
|
|
of an infix definition of \fB(!)\fP when
|
|
\fBBangPatterns\fP are not enabled
|
|
.TP
|
|
.B \fB\-Wstar\-binder\fP
|
|
warn about binding the \fB(*)\fP type operator despite
|
|
\fBStarIsType\fP
|
|
.TP
|
|
.B \fB\-Wstar\-is\-type\fP
|
|
warn when \fB*\fP is used to mean \fBData.Kind.Type\fP
|
|
.TP
|
|
.B \fB\-Wtabs\fP
|
|
warn if there are tabs in the source file
|
|
.TP
|
|
.B \fB\-Wtrustworthy\-safe\fP
|
|
warn if the module being compiled is marked as
|
|
\fBTrustworthy\fP but it could instead be marked as
|
|
\fBSafe\fP, a more informative bound.
|
|
.TP
|
|
.B \fB\-Wtype\-defaults\fP
|
|
warn when defaulting happens
|
|
.TP
|
|
.B \fB\-Wtyped\-holes\fP
|
|
Report warnings when typed hole errors are
|
|
deferred until runtime\&. See
|
|
\fB\-fdefer\-typed\-holes\fP\&.
|
|
.TP
|
|
.B \fB\-Wunbanged\-strict\-patterns\fP
|
|
warn on pattern bind of unlifted variable that is neither bare
|
|
nor banged
|
|
.TP
|
|
.B \fB\-Wunrecognised\-pragmas\fP
|
|
warn about uses of pragmas that GHC doesn\(aqt recognise
|
|
.TP
|
|
.B \fB\-Wunrecognised\-warning\-flags\fP
|
|
throw a warning when an unrecognised \fB\-W...\fP flag is
|
|
encountered on the command line.
|
|
.TP
|
|
.B \fB\-Wunsafe\fP
|
|
warn if the module being compiled is regarded to be unsafe.
|
|
See safe\-haskell
|
|
.TP
|
|
.B \fB\-Wunsupported\-calling\-conventions\fP
|
|
warn about use of an unsupported calling convention
|
|
.TP
|
|
.B \fB\-Wunsupported\-llvm\-version\fP
|
|
Warn when using \fB\-fllvm\fP with an unsupported
|
|
version of LLVM.
|
|
.TP
|
|
.B \fB\-Wunticked\-promoted\-constructors\fP
|
|
warn if promoted constructors are not ticked
|
|
.TP
|
|
.B \fB\-Wunused\-binds\fP
|
|
warn about bindings that are unused. Alias for
|
|
\fB\-Wunused\-top\-binds\fP, \fB\-Wunused\-local\-binds\fP and
|
|
\fB\-Wunused\-pattern\-binds\fP
|
|
.TP
|
|
.B \fB\-Wunused\-do\-bind\fP
|
|
warn about do bindings that appear to throw away values of types
|
|
other than \fB()\fP
|
|
.TP
|
|
.B \fB\-Wunused\-foralls\fP
|
|
warn about type variables in user\-written
|
|
\fBforall\fP\es that are unused
|
|
.TP
|
|
.B \fB\-Wunused\-imports\fP
|
|
warn about unnecessary imports
|
|
.TP
|
|
.B \fB\-Wunused\-local\-binds\fP
|
|
warn about local bindings that are unused
|
|
.TP
|
|
.B \fB\-Wunused\-matches\fP
|
|
warn about variables in patterns that aren\(aqt used
|
|
.TP
|
|
.B \fB\-Wunused\-packages\fP
|
|
warn when package is requested on command line, but was never loaded.
|
|
.TP
|
|
.B \fB\-Wunused\-pattern\-binds\fP
|
|
warn about pattern match bindings that are unused
|
|
.TP
|
|
.B \fB\-Wunused\-record\-wildcards\fP
|
|
Warn about record wildcard matches when none of the bound variables
|
|
are used.
|
|
.TP
|
|
.B \fB\-Wunused\-top\-binds\fP
|
|
warn about top\-level bindings that are unused
|
|
.TP
|
|
.B \fB\-Wunused\-type\-patterns\fP
|
|
warn about unused type variables which arise from patterns in
|
|
in type family and data family instances
|
|
.TP
|
|
.B \fB\-Wwarn\fP
|
|
make warnings non\-fatal
|
|
.TP
|
|
.B \fB\-Wwarnings\-deprecations\fP
|
|
warn about uses of functions & types that have warnings or
|
|
deprecated pragmas
|
|
.TP
|
|
.B \fB\-Wwrong\-do\-bind\fP
|
|
warn about do bindings that appear to throw away monadic values
|
|
that you should have bound instead
|
|
.UNINDENT
|
|
.SH COPYRIGHT
|
|
.sp
|
|
Copyright 2015. The University Court of the University of Glasgow.
|
|
All rights reserved.
|
|
.SH AUTHOR
|
|
The GHC Team
|
|
.SH COPYRIGHT
|
|
2015, GHC Team
|
|
.\" Generated by docutils manpage writer.
|
|
.
|