7.6. フラグの一覧表

このセクションは GHC のコマンドラインフラグの早見表です. それぞれのフラグについて,動的/静的の区別(静的オプション,動的オプション,モード指定オプション 参照)と逆のフラグ(存在すれば)も載せています.

7.6.1. 饒舌性に関するオプション

より詳しくは 饒舌性に関するオプション にあります.

Flag Description Type Reverse
-v 饒舌モード (-v 3 と同じ) dynamic  
-v ⟨n⟩ 饒舌性の設定 dynamic  
-fhide-source-paths モジュールのソースパスおよびオブジェクトパスの非表示 dynamic  
-fprint-potential-instances 型エラーメッセージに判明しているすべてのインスタンスを表示 dynamic -fno-print-potential-instances
-fprint-explicit-foralls 型に forall 限量子を明示. -XExplicitForAll も参照 dynamic -fno-print-explicit-foralls
-fprint-explicit-kinds 型にカインド forall とカインド引数も明示. -XKindSignatures も参照 dynamic -fno-print-explicit-kinds
-fprint-explicit-runtime-reps 実行時表現多相型に含まれる RuntimeRep 変数を明示 dynamic -fno-print-explicit-runtime-reps
-fprint-unicode-syntax 式,型,カインドを表示するときユニコード構文を使用. -XUnicodeSyntax も参照 dynamic -fno-print-unicode-syntax
-fprint-expanded-synonyms 型エラーに型シノニムを展開した型も表示 dynamic -fno-print-expanded-synonyms
-fprint-typechecker-elaboration タイプ検査器が出す追加情報を表示 dynamic -fno-print-typechecker-elaboration
-fdiagnostics-color=(always|auto|never) エラーメッセージで色を使用 dynamic  
-f[no-]diagnostics-show-caret 元のソースコード位置を示すカレットを表示するか dynamic  
-ferror-spans 完全なエラーメッセージを出力 dynamic  
-Rghc-timing GHC の実行時間統計をとる(+RTS -tstderr と同じ) dynamic  
-fshow-hole-constraints 型付きホールの報告時に制約を表示 dynamic  
-fshow-loaded-modules GHCiが :load コマンドでロード後モジュール名を表示 dynamic  

7.6.2. 通常以外の実行モード

より詳しくは 実行モード にあります.

Flag Description Type Reverse
--help, -? ヘルプを表示 mode  
--interactive 対話モード - 通常は単に ghci を走らせるたときに使用. 詳細については GHCi を使う 参照 mode  
--make 複数のモジュールを含む Haskell のプログラムをビルド. 依存性は自動的に検出する. make を使うよりはるかに簡単で速い. 詳細については ghc –make を使う を参照 mode  
-e ⟨expr⟩ expr を評価する. 詳細については 式評価モード を参照 mode  
--show-iface ⟨file⟩ インターフェイスファイルの中身を表示 mode  
-M Makefile 用の依存情報生成する. 詳細については Dependency generation を参照 mode  
--frontend ⟨module⟩ 指定したフロントエンドプラグインを使って GHC を走らせる. 詳細については Frontend plugins を参照 mode  
--supported-extensions, --supported-languages サポートされている言語拡張を表示 mode  
--show-options サポートされているコマンドラインオプションを表示 mode  
--info 当該コンパイラに関する情報を表示 mode  
--version, -V GHC のバージョンを表示 mode  
--numeric-version GHC のバージョンを表示(数値のみ) mode  
--print-libdir GHC ライブラリのディレクトリを表示 mode  

7.6.3. どの段階を実行するか

より詳しくは 一括コンパイラモード にあります.

Flag Description Type Reverse
-F pre-processor を使えるようにする. (-pgmF ⟨cmd⟩ で設定する) dynamic  
-E プリプロセッサ実行まで (.hspp ファイル) mode  
-C C 生成まで (.hc ファイル) mode  
-S アセンブリ生成まで (.s ファイル) mode  
-c オブジェクトファイル生成まで (.o ファイル) mode  
-x ⟨suffix⟩ ソースファイルの種類に対してデフォルトではない動作 dynamic  

7.6.4. 出力先の変更

より詳しくは Redirecting the compilation output(s) にあります.

Flag Description Type Reverse
-hcsuf ⟨suffix⟩ 中間 C ファイル用の接尾辞を設定 dynamic  
-hidir ⟨dir⟩ インターフェイスファイルを置くディレクトリを設定 dynamic  
-hisuf ⟨suffix⟩ インターフェイス用の接尾辞を設定 dynamic  
-o ⟨file⟩ 出力ファイル名を設定 dynamic  
-odir ⟨dir⟩ オブジェクトファイルを置くディレクトリを設定 dynamic  
-ohi ⟨file⟩ インターフェイスを置くファイルの名前を設定 dynamic  
-osuf ⟨suffix⟩ 出力ファイルの接尾辞を設定 dynamic  
-stubdir ⟨dir⟩ FFI のスタブファイルの出力先を変更 dynamic  
-dumpdir ⟨dir⟩ ダンプファイルの出力先を変更 dynamic  
-outputdir ⟨dir⟩ 出力ファイルを置くディレクトリを設定 dynamic  
-dyno ⟨file⟩ 動的オブジェクト出力用ファイル名を設定 (-dynamic-too 参照) dynamic  
-dynosuf ⟨suffix⟩ 動的オブジェクトファイルの接尾辞を設定 (-dynamic-too 参照) dynamic  
-dynhisuf ⟨suffix⟩ 動的オブジェクト用インターフェイスファイル接尾辞を設定 (-dynamic-too 参照) dynamic  

7.6.5. 中間ファイルの保持

より詳しくは Keeping Intermediate Files にあります.

Flag Description Type Reverse
-keep-hc-file, -keep-hc-files 中間の .hc ファイルを保持 dynamic  
-keep-hi-files 中間の .hi ファイルを保持 (デフォルト) dynamic -no-keep-hi-files
-keep-llvm-file, -keep-llvm-files 中間の LLVM .ll ファイルを保持. -fllvm によって有効になる dynamic  
-keep-o-files 中間の .o ファイルを保持 (デフォルト) dynamic -no-keep-o-files
-keep-s-file, -keep-s-files 中間の .s ファイルを保持 dynamic  
-keep-tmp-files すべての中間ファイルを保持 dynamic  

7.6.6. 一時ファイル

より詳しくは Redirecting temporary files にあります.

Flag Description Type Reverse
-tmpdir ⟨dir⟩ 一時ファイルを置くディレクトリを設定 dynamic  

7.6.7. インポートの検索

詳しくは The search path にあります.

Flag Description Type Reverse
-i⟨dir⟩[:⟨dir⟩]* ⟨dir⟩, ⟨dir2⟩, などをインポートパスに追加 dynamic/:set  
-i インポートディレクトリの一覧を空にする dynamic/:set  

7.6.8. インターフェイスファイル関連オプション

詳しくは Other options related to interface files にあります.

Flag Description Type Reverse
-ddump-hi 新しいインターフェイスファイルを標準出力に出力 dynamic  
-ddump-hi-diffs 古いインターフェイスファイルと比較しての差分を表示 dynamic  
-ddump-minimal-imports 最小のインポートを出力 dynamic  
--show-iface ⟨file⟩ 実行モード 参照 mode  

7.6.9. 再コンパイル検査

詳しくは The recompilation checker にあります.

Flag Description Type Reverse
-fforce-recomp 再コンパイル検査を無効にする. 単位ファイルをコンパイルするとき (すなわち -c を使っているとき) -ddump-X 系のオプションが1つでも指定されていれば 自動的に有効になる dynamic -fno-force-recomp

7.6.10. 対話モードのオプション

詳しくは .ghci ファイルと .haskeline ファイル にあります.

Flag Description Type Reverse
-ignore-dot-ghci .ghci を読み込み無効設定 dynamic  
-ghci-script .ghci ファイルの追加読み込み設定 dynamic  
-fbreak-on-error 例外やエラーがキャッチできない場合にブレイク dynamic -fno-break-on-error
-fbreak-on-exception 例外が投げられる場合にブレイク dynamic -fno-break-on-exception
-fghci-hist-size=⟨n⟩ GHCi が :history で保存する項目の数を設定. GHCiのデバッガ 参照 dynamic  
-fprint-evld-with-show :printShow のインスタンス使用を有効に設定. ブレイクポイントと変数内容の表示 参照 dynamic -fno-print-evld-with-show
-fprint-bind-result GHCi で束縛の結果表示を有効に設定 dynamic -fno-print-bind-result
-fno-print-bind-contents GHCi で束縛の結果表示を無効に設定 dynamic  
-fno-implicit-import-qualified GHCi ですべての暗黙修飾付きインポートを無効に設定 dynamic  
-interactive-print ⟨expr⟩ GHCi において評価済みの式を表示するのに使う関数を選択 dynamic  

7.6.11. パッケージ

詳しくは Packages にあります.

Flag Description Type Reverse
-this-unit-id ⟨unit-id⟩ ⟨unit-id⟩ ユニット(たとえばパッケージ)の一部としてコンパイル dynamic  
-package ⟨pkg⟩ パッケージ ⟨pkg⟩ の露出 dynamic/:set  
-hide-all-packages デフォルトですべてのパッケージを隠す dynamic  
-hide-package ⟨pkg⟩ パッケージ ⟨pkg⟩ を隠す dynamic/:set  
-ignore-package ⟨pkg⟩ パッケージ ⟨pkg⟩ を無視 dynamic/:set  
-package-db ⟨file⟩ ⟨file⟩ をパッケージ DB スタックに追加 dynamic  
-clear-package-db パッケージ DB スタックをクリア dynamic  
-no-global-package-db グローバルパッケージ DB をスタックから除去 dynamic  
-global-package-db グローバルパッケージ DB をスタックへ追加 dynamic  
-no-user-package-db ユーザーパッケージ DB をスタックから除去 dynamic  
-user-package-db ユーザーパッケージ DB をスタックへ追加 dynamic  
-no-auto-link-packages base パッケージと rts パッケージの自動リンクを無効に設定 dynamic  
-trust ⟨pkg⟩ パッケージ ⟨pkg⟩ を露出し trusted に設定 dynamic/:set  
-distrust ⟨pkg⟩ パッケージ ⟨pkg⟩ を露出し distrusted に設定 dynamic/:set  
-distrust-all デフォルトですべてのパッケージを distrusted に設定 dynamic/:set  
-package-env ⟨file⟩|⟨name⟩ 指定したパッケージ環境を使用 dynamic  

7.6.12. 言語オプション

言語オプションを有効にするには -Xなんたら というコマンドラインオプションを使うか, プログラムファイルで {-# LANGUAGE blah #-} プラグマを使います. Language options 参照. いくつかのオプションについては -f* を使うと有効になります.

Flag Description Type Reverse
-fconstraint-solver-iterations=⟨n⟩ デフォルト: 4. 型制約ソルバーの反復限界を設定. 通常は1回で十分なので, デフォルト値よりも大きい必要があるときは 大声で報せてください. 0 で限界値解除 dynamic  
-freduction-depth=⟨n⟩ デフォルト 200. 型単純化の上限値を設定. 0 で限界値解除 dynamic  
-fcontext-stack=⟨n⟩ 非推奨. 代りに -freduction-depth=⟨n⟩ を使用すること dynamic  
-fglasgow-exts 非推奨. ほとんどの言語拡張を有効にする. どの言語拡張が有効になるかは Language options を参照のこと dynamic -fno-glasgow-exts
-firrefutable-tuples タプルパターン照合を反駁不可にする dynamic -fno-irrefutable-tuples
-fpackage-trust Safe Haskell の trusted パッケージが Trustworthly モジュールを要求するようにする dynamic  
-ftype-function-depth=⟨n⟩ 非推奨. 代りに -freduction-depth=⟨n⟩ を使う dynamic  
-XAllowAmbiguousTypes ユーザーが 曖昧な型 を書けるようにし, 型推論エンジンはそれを推論するようにする dynamic -XNoAllowAmbiguousTypes
-XArrows アロー記法 拡張を有効にする dynamic -XNoArrows
-XApplicativeDo Applicative do-記法のデシュガー を有効にする dynamic -XNoApplicativeDo
-XAutoDeriveTypeable GHC 7.10 以降このオプションは不要なので使うべきではない. 以前はこれによりすべてのデータ型宣言,型クラス宣言に対して Typeable のインスタンスが自動的に設定された. このオプションは -XDeriveDataTypeable を有効にする dynamic -XNoAutoDeriveTypeable
-XBangPatterns バンパターン を有効にする dynamic -XNoBangPatterns
-XBinaryLiterals バイナリリテラル のサポートを有効にする dynamic -XNoBinaryLiterals
-XCApiFFI CAPI の呼び出し規則 を有効にする dynamic -XNoCAPIFFI
-XConstrainedClassMethods 制約付きクラスメソッド を有効にする dynamic -XNoConstrainedClassMethods
-XConstraintKinds 制約のカインド を有効にする dynamic -XNoConstraintKinds
-XCPP C のプリプロセッサ を有効にする dynamic -XNoCPP
-XDataKinds データ型の昇格 を有効にする dynamic -XNoDataKinds
-XDefaultSignatures デフォルトシグネチャ を有効にする dynamic -XNoDefaultSignatures
-XDeriveAnyClass 任意のクラスの導出 を有効にする dynamic -XNoDeriveAnyClass
-XDeriveDataTypeable Data クラスの導出 を有効にする. -XAutoDeriveTypeable を指定すると有効になる dynamic -XNoDeriveDataTypeable
-XDeriveFunctor Functor クラスの導出 を有効にする. -XDeriveTraversable を指定すると有効になる dynamic -XNoDeriveFunctor
-XDeriveFoldable Foldable クラスの導出 を有効にする. -XDeriveTraversable を指定すると有効になる dynamic -XNoDeriveFoldable
-XDeriveGeneric Generic クラスの導出 を有効にする dynamic -XNoDeriveGeneric
-XDeriveLift Lift クラスの導出 を有効にする dynamic -XNoDeriveLift
-XDeriveTraversable Traversable クラスの導出 を有効にする. これを有効にすると -XDeriveFunctor および -XDeriveFoldable も有効になる dynamic -XNoDeriveTraversable
-XDerivingStrategies 導出戦略 を有効にする dynamic -XNoDerivingStrategies
-XDisambiguateRecordFields レコードフィールドの曖昧性除去 を有効にする. -XRecordWildCards を指定すると有効になる. dynamic -XNoDisambiguateRecordFields
-XEmptyCase 選択肢のない case を許可する dynamic -XNoEmptyCase
-XEmptyDataDecls 空のデータ型宣言を有効にする dynamic -XNoEmptyDataDecls
-XExistentialQuantification 存在量化 を有効にする dynamic -XNoExistentialQuantification
-XExplicitForAll 全称量化の明示 を有効にする. -XScopedTypeVariables, -XLiberalTypeSynonyms, -XRankNTypes, -XExistentialQuantification で有効になる dynamic -XNoExplicitForAll
-XExplicitNamespaces キーワード type を使って インポートリストとエクスポートリストにある 実体の名前空間を指定する (Explicit namespaces in import/export) ことを有効にする. -XTypeOperators および -XTypeFamilies で有効になる dynamic -XNoExplicitNamespaces
-XExtendedDefaultRules GHCi の 拡張デフォルト規則 を 通常のモジュールで使う dynamic -XNoExtendedDefaultRules
-XFlexibleContexts 柔軟なコンテキスト を有効にする. -XImplicitParams を指定すると有効になる dynamic -XNoFlexibleContexts
-XFlexibleInstances 柔軟なインスタンス を有効にする. これを有効にすると -XTypeSynonymInstances が有効になる. これは -XImplicitParams を指定すると有効になる dynamic -XNoFlexibleInstances
-XForeignFunctionInterface 外部関数インターフェイス を有効にする dynamic -XNoForeignFunctionInterface
-XFunctionalDependencies 関数従属 を有効にする. これを有効にすると -XMultiParamTypeClasses が有効になる dynamic -XNoFunctionalDependencies
-XGADTs 一般化代数データ型 を有効にする. これを有効にすると -XGADTSyntax および -XMonoLocalBinds が有効になる dynamic -XNoGADTs
-XGADTSyntax 一般化代数データ型構文 を有効にする. dynamic -XNoGADTSyntax
-XGeneralizedNewtypeDeriving newtype deriving を有効にする dynamic -XNoGeneralizedNewtypeDeriving
-XGenerics 非推奨.何の効果もなく 総称クラス を有効にすることもない.GHC の 総称プログラミング のサポートも参照のこと dynamic -XNoGenerics
-XImplicitParams 暗黙パラメータ を有効にする これを有効にすると -XFlexibleContexts および -XFlexibleInstances が有効になる dynamic -XNoImplicitParams
-XNoImplicitPrelude 暗黙に import Prelude しない. これは -XRebindableSyntax を指定すると有効になる dynamic -XImplicitPrelude
-XImpredicativeTypes 非可述型 を有効にする. これを有効すると -XRankNTypes が有効になる dynamic -XNoImpredicativeTypes
-XIncoherentInstances 非整合インスタンス を有効にする. これを有効にすると -XOverlappingInstances が有効になる dynamic -XNoIncoherentInstances
-XTypeFamilyDependencies 単射的型族 を有効にする Implies -XTypeFamilies. dynamic -XNoTypeFamilyDependencies
-XInstanceSigs インスタンスシグネチャ を有効にする dynamic -XNoInstanceSigs
-XInterruptibleFFI 割り込み可能な FFI を有効にする dynamic -XNoInterruptibleFFI
-XKindSignatures カインドシグネチャ を有効にする. これは -XTypeFamilies および -XPolyKinds を指定すれば有効になる dynamic -XNoKindSignatures
-XLambdaCase lambda-case 式 を有効にする dynamic -XNoLambdaCase
-XLiberalTypeSynonyms Enable 自由化型シノニム を有効にする dynamic -XNoLiberalTypeSynonyms
-XMagicHash #識別子の接頭辞として付ける ことを有効にする dynamic -XNoMagicHash
-XMonadComprehensions モナド内包表記 ` を有効にする dynamic -XNoMonadComprehensions
-XMonoLocalBinds 局所的な束縛の一般化 をしない設定を有効にする. これは -XTypeFamilies および -XGADTs を有効にすると有効になる dynamic -XNoMonoLocalBinds
-XNoMonomorphismRestriction 単相性制限 を無効にする dynamic -XMonomorphismRestriction
-XMultiParamTypeClasses 多パラメータ型クラス を有効にする. これは -XFunctionalDependencies を指定すれば有効になる dynamic -XNoMultiParamTypeClasses
-XMultiWayIf 多分岐 if-式 を有効にする dynamic -XNoMultiWayIf
-XNamedFieldPuns レコード同名利用 を有効にする dynamic -XNoNamedFieldPuns
-XNamedWildCards 名前付きワイルドカード を有効にする dynamic -XNoNamedWildCards
-XNegativeLiterals 負数リテラル のサポートを有効にする dynamic -XNoNegativeLiterals
-XNPlusKPatterns n+k パターンのサポートを有効にする. これは -XHaskell98 を指定すると有効になる dynamic -XNoNPlusKPatterns
-XNullaryTypeClasses 非推奨. 何の効果もない. 無引数型クラス-XMultiParamTypeClasses で有効になる dynamic -XNoNullaryTypeClasses
-XNumDecimals 「小数表記」の整数リテラルのサポートを有効にする dynamic -XNoNumDecimals
-XOverlappingInstances インスタンスのオーバーラップ を有効にする dynamic -XNoOverlappingInstances
-XOverloadedLabels ラベルの多重定義 を有効にする dynamic -XNoOverloadedLabels
-XOverloadedLists リストの多重定義 を有効にする dynamic -XNoOverloadedLists
-XOverloadedStrings 文字列リテラルの多重定義 を有効にする dynamic -XNoOverloadedStrings
-XPackageImports パッケージ修飾されたインポート を有効にする dynamic -XNoPackageImports
-XParallelArrays 並列配列を有効にする. これを有効にすると -XParallelListComp が有効になる dynamic -XNoParallelArrays
-XParallelListComp 並列リスト内包表記 を有効にする これは -XParallelArrays を設定すると有効になる dynamic -XNoParallelListComp
-XPartialTypeSignatures 部分型シグネチャ を有効にする dynamic -XNoPartialTypeSignatures
-XNoPatternGuards パターンガード を無効にする. これは -XHaskell98 を有効にすると設定される dynamic -XPatternGuards
-XPatternSynonyms パターンシノニム を有効にする dynamic -XNoPatternSynonyms
-XPolyKinds カインド多相 を有効にする. これを有効にすると -XKindSignatures が設定される dynamic -XNoPolyKinds
-XPolymorphicComponents データ構成子が多相的構成要素 を持てるようにする. -XRankNTypes と同義 dynamic -XNoPolymorphicComponents
-XPostfixOperators 後置演算子 を有効にする dynamic -XNoPostfixOperators
-XQuasiQuotes 準クォート を有効にする dynamic -XNoQuasiQuotes
-XRank2Types ランク-2 型 を有効にする. -XRankNTypes と同義 dynamic -XNoRank2Types
-XRankNTypes ランク-N 型 を有効にする. これは -XImpredicativeTypes を設定すると有効になる. dynamic -XNoRankNTypes
-XRebindableSyntax 再束縛可能な構文 を有効にする これを有効にすると -XNoImplicitPrelude が有効になる dynamic -XNoRebindableSyntax
-XRecordWildCards レコードワイルドカード を有効にする. これを有効にすると -XDisambiguateRecordFields が有効になる dynamic -XNoRecordWildCards
-XRecursiveDo 再帰 do (mdo) 記法 を有効にする dynamic -XNoRecursiveDo
-XRoleAnnotations ロール注釈 を有効にする dynamic -XNoRoleAnnotations
-XSafe Safe Haskell の Safe モードを有効にする dynamic  
-XScopedTypeVariables レキシカルスコープを持つ型変数 を有効にする dynamic -XNoScopedTypeVariables
-XStandaloneDeriving スタンドアロン deriving を有効にする dynamic -XNoStandaloneDeriving
-XStaticPointers 静的ポインタ を有効にする dynamic -XNoStaticPointers
-XStrictData データ型のフィールドをデフォルトで正格にする dynamic -XNoStrictData
-XTemplateHaskell Template Haskell を有効にする dynamic -XNoTemplateHaskell
-XTemplateHaskellQuotes Template Haskell のクォート部分だけ有効にする dynamic -XNoTemplateHaskellQuotes
-XNoTraditionalRecordSyntax 伝統的なレコード構文(Haskell 98 でサポートしていた) C {f = x} への対応を無効にする dynamic -XTraditionalRecordSyntax
-XTransformListComp 一般化リスト内包表記 を有効にする dynamic -XNoTransformListComp
-XTrustworthy Safe Haskell の Trustworthy モードを有効にする dynamic  
-XTupleSections タプルセクション を有効にする dynamic -XNoTupleSections
-XTypeFamilies 型族 を有効にする. これを有効にすると -XExplicitNamespaces, -XKindSignatures, -XMonoLocalBinds が有効になる dynamic -XNoTypeFamilies
-XTypeInType カインドを型のように使える ようにする. これには明示的カインド量化,高階ランクカインド, カインドシノニム,カインド族を含む. これを有効にすると -XDataKinds, -XKindSignatures, -XPolyKinds が有効になる dynamic -XNoTypeInType
-XTypeOperators 型演算子 を有効にする. これを有効にすると -XExplicitNamespaces が有効になる dynamic -XNoTypeOperators
-XTypeSynonymInstances インスタンス頭部で型シノニム を有効にする. これは -XFlexibleInstances を設定すると有効になる dynamic -XNoTypeSynonymInstances
-XUnboxedTuples 非ボックス化タプル を有効にする dynamic -XNoUnboxedTuples
-XUnboxedSums
ref:非ボックス化 Sum <unboxed-sums> を有効にする
dynamic -XNoUnboxedSums
-XUndecidableInstances 非決定性インスタンス を有効にする dynamic -XNoUndecidableInstances
-XUnicodeSyntax Unicode構文 を有効にする dynamic -XNoUnicodeSyntax
-XUnliftedFFITypes unlifted FFI 型を有効にする dynamic -XNoUnliftedFFITypes
-XUnsafe Safe Haskell で Unsafe モードにする dynamic  
-XViewPatterns view patterns を有効にする dynamic -XNoViewPatterns

7.6.13. 警告

詳しくは 警告と整合性検査 にあります.

Flag Description Type Reverse
-W 通常の警告を有効にする dynamic -w
-w すべての警告を無効にする dynamic  
-Wall ほぼすべての警告を有効にする (詳細は 警告と整合性検査 にある) dynamic -w
-Wcompat 将来の互換性のための警告を有効にする (詳細は 警告と整合性検査 にある) dynamic -Wno-compat
-Werror 警告を致命的エラーにする dynamic -Wwarn
-Werror=⟨wflag⟩ 指定した警告を致命的エラーにする dynamic -Wwarn=⟨wflag⟩
-Wwarn 警告を致命的エラーにしない dynamic -Werror
-Wwarn=⟨wflag⟩ 指定した警告を致命的エラーにしない dynamic -Werror=⟨wflag⟩
-Wunrecognised-warning-flags 認識できない -W... フラグがコマンドラインで指定されたとき 警告を出す dynamic -Wno-unrecognised-warning-flags
-fshow-warning-groups どのグループ所属の警告が出たかを表示する dynamic -fno-show-warning-groups
-fdefer-type-errors 型エラーを警告にし そのエラーの発動を実行時まで遅延する. これを有効にすると -fdefer-typed-holes および -fdefer-out-of-scope-variables が有効になる. -Wdeferred-type-errors も参照のこと dynamic -fno-defer-type-errors
-fdefer-typed-holes 型付ホール のエラーを警告にし そのエラーを実行時まで遅延 する. これは -fdefer-type-errors を設定すると有効になる. -Wtyped-holes も参照のこと dynamic -fno-defer-typed-holes
-fdefer-out-of-scope-variables 変数の有効範囲外エラーを警告に変更する. これは -fdefer-type-errors を設定すると有効になる. -Wdeferred-out-of-scope-variables も参照のこと dynamic -fno-defer-out-of-scope-variables
-fhelpful-errors 綴り間違いの名前について推測した名前を提案する dynamic -fno-helpful-errors
-freverse-errors GHC/GHCi でエラーをソースコード位置の逆順で表示する dynamic -fno-reverse-errors
-fmax-errors GHC/GHCi で表示するエラーの上限を設定する dynamic -fno-max-errors
-Wdeprecated-flags コマンドラインで非推奨のフラグを用いたときに警告する dynamic -Wno-deprecated-flags
-Wduplicate-constraints 型シグネチャで制約が重複して現れたときに警告する dynamic -Wno-duplicate-constraints
-Wduplicate-exports エクスポートリストに重複したエントリーがあるときに警告する dynamic -Wno-duplicate-exports
-Whi-shadowing 現在のディレクトリにある .hi ファイルがライブラリをシャドウしたときに警告する dynamic -Wno-hi-shadowing
-Widentities Prelude の数値変換が恒等変換と推測される場合 (省略可能) に警告する dynamic -Wno-identities
-Wimplicit-prelude Prelude が暗黙にインポートされた場合に警告する dynamic -Wno-implicit-prelude
-Wincomplete-patterns パターン照合が失敗する可能性があるとき警告する dynamic -Wno-incomplete-patterns
-Wincomplete-uni-patterns λ 抽象式あるいはパターン束縛でのパターン照合が失敗する可能性があるとき警告する dynamic -Wno-incomplete-uni-patterns
-fmax-pmcheck-iterations=⟨n⟩ パターン照合検査の反復上限を設定する dynamic  
-Wincomplete-record-updates レコードの更新が失敗する可能性があるとき警告する dynamic -Wno-incomplete-record-updates
-Wmissing-fields レコードフィールドの初期化が不完全のとき警告する dynamic -Wno-missing-fields
-Wmissing-import-lists インポート宣言がインポートリストで有効範囲に 持ち込む名前を列挙しないとき警告する dynamic -fnowarn-missing-import-lists
-Wmissing-methods クラスメソッドが未定義のとき警告する dynamic -Wno-missing-methods
-Wmissing-signatures トップレベルの関数が型シグネチャを持たないとき警告する dynamic -Wno-missing-signatures
-Wmissing-exported-sigs (非推奨) 型シグネチャを持たないトップレベルの関数がエクスポートされているときにのみ警告する. これは -Wmissing-signatures より優先される dynamic -Wno-missing-exported-sigs
-Wmissing-exported-signatures 型シグネチャを持たないトップレベルの関数がエクスポートされているときにのみ警告する. これは -Wmissing-signatures より優先される dynamic -Wno-missing-exported-signatures
-Wmissing-local-sigs (非推奨) 型シグネチャのない多相の局所的束縛について警告する dynamic -Wno-missing-local-sigs
-Wmissing-local-signatures 型シグネチャのない多相の局所的束縛について警告する dynamic -Wno-missing-local-signatures
-Wmissing-monadfail-instances do-ブロックで失敗する可能性のあるパターンが使われ MonadFail のインスタンスでないときに警告する dynamic -Wno-missing-monadfail-instances
-Wsemigroup Monoid であって Semigroup のインスタンスではなく Semigroup で定義された (<>) を使っているとき警告する dynamic -Wno-semigroup
-Wmissed-specialisations インポートされた多重定義の関数の特定に失敗したとき警告する dynamic -Wno-missed-specialisations
-Wall-missed-specialisations 多重定義された関数の特定に失敗したとき警告する dynamic -Wno-all-missed-specialisations
-Wmonomorphism-restriction モノモルフィズム制限が適用されたとき警告する dynamic -Wno-monomorphism-restriction
-Wname-shadowing 名前がシャドウイングされたとき警告する dynamic -Wno-name-shadowing
-Wnoncanonical-monad-instances Applicative あるいは Monad のインスタンスが 非標準の return, pure, (>>), あるいは (*>) の定義を持つとき警告する. 詳細はフラグ解説 警告と整合性検査 参照 dynamic -Wno-noncanonical-monad-instances
-Wnoncanonical-monadfail-instances Monad あるいは MonadFail のインスタンスが 非標準の fail の定義を持つとき警告する. 詳細はフラグ解説 警告と整合性検査 参照 dynamic -Wno-noncanonical-monadfail-instances
-Wnoncanonical-monoid-instances Semigroup あるいは Monoid のインスタンスが 非標準の (<>) あるいは mappend の定義を持つとき警告する. 詳細はフラグ解説 警告と整合性検査 参照 dynamic -Wno-noncanonical-monoid-instances
-Worphans モジュールが 孤立した instance 宣言あるいは書き換え規則 を持つとき警告する dynamic -Wno-orphans
-Woverlapping-patterns オーバーラップしたパターンに関して警告する dynamic -Wno-overlapping-patterns
-Wtabs ソースファイルにタブ文字があると警告する dynamic -Wno-tabs
-Wtype-defaults デフォルト化が起ったとき警告する dynamic -Wno-type-defaults
-Wunrecognised-pragmas GHC が認識できないプラグマが使われていることを警告する dynamic -Wno-unrecognised-pragmas
-Wunticked-promoted-constructors 昇格した構成子にアポストロフィが前置されていないことを警告する dynamic -Wno-unticked-promoted-constructors
-Wunused-binds 未使用の束縛に警告する. 以下をすべて指定するのと同義. -Wunused-top-binds, -Wunused-local-binds および -Wunused-pattern-binds dynamic -Wno-unused-binds
-Wunused-top-binds 未使用のトップレベルの束縛に警告する dynamic -Wno-unused-top-binds
-Wunused-local-binds 未使用の局所定義に警告する dynamic -Wno-unused-local-binds
-Wunused-pattern-binds 未使用のパターン照合束縛に警告する dynamic -Wno-unused-pattern-binds
-Wunused-imports 不必要なインポートに警告する dynamic -Wno-unused-imports
-Wunused-matches 未使用のパターン中の変数に警告する dynamic -Wno-unused-matches
-Wunused-foralls ユーザーの書いた forall にある未使用型変数に警告する dynamic -Wno-unused-foralls
-Wunused-type-variables 型族あるいはデータ族のインスタンス中の 未使用変数に警告する dynamic -Wno-unused-type-variables
-Wunused-do-bind do-束縛で () 型以外の値を捨てているように見えるとき警告する dynamic -Wno-unused-do-bind
-Wwrong-do-bind do-束縛で束縛すべきモナド値が捨てているように見えるとき警告する dynamic -Wno-wrong-do-bind
-Wunsafe コンパイルしようとするモジュールが unsafe と見なされる場合に警告する. 安全性推論を使うときは, モジュールが安全かどうかを確認するために このフラグを使うべきである. すべてのモジュールタイプで機能するので, 明示的に Safe Haskell モードを使用 (-XTrustworthy) している場合でも あらゆる仮定をコンパイラに確認するようこのフラグを使うべきである. dynamic -Wno-unsafe
-Wsafe コンパイルしようとするモジュールが safe と見なされる場合に警告する. 安全性推論を使うときは, モジュールが安全かどうかを確認するために このフラグを使うべきである. すべてのモジュールタイプで機能するので, 明示的に Safe Haskell モードを使用 (-XTrustworthy) している場合でも あらゆる仮定をコンパイラに確認するようこのフラグを使うべきである. dynamic -Wno-safe
-Wtrustworthy-safe コンパイルしようとするモジュールが -XTrustworthy マーク付きであるが, -XSafe マーク付きにするほうがより有益な境界になる場合に警告するこのフラグを利用すると 依存関係が更新されたとき Safe Haskell 境界が改善できるようになったことを検出できる dynamic -Wno-safe
-Wwarnings-deprecations WARNING あるい DEPRECATED プラグマの付いた関数および型を使うと警告する dynamic -Wno-warnings-deprecations
-Wdeprecations WARNING あるい DEPRECATED プラグマの付いた関数および型を使うと警告する:ghc-flag:-Wwarnings-deprecations の別名 dynamic -Wno-deprecations
-Wamp (非推奨) Applicative-Monad Proposal (AMP) と衝突する定義について警告する dynamic -Wno-amp
-Wredundant-constraints 型シグネチャに冗長な制約があると警告する dynamic -Wno-redundant-constraints
-Wdeferred-type-errors deferred type errors が有効になっていると警告する. このオプションはデフォルトで有効. -fdefer-type-errors 参照 dynamic -Wno-deferred-type-errors
-Wtyped-holes 型ホール エラーが 実行時まで遅延 されているとき警告する. -fdefer-typed-holes 参照 dynamic -Wno-typed-holes
-Wdeferred-out-of-scope-variables 変数のスコープ外エラーが実行時まで遅延されているとき警告する. -fdefer-out-of-scope-variables 参照 dynamic -Wno-deferred-out-of-scope-variables
-Wpartial-type-signatures -XPartialTypeSignatures が有効になっているとき 部分型シグネチャ中にホールがあれば警告する. -XPartialTypesignatures が無効であれば このようなホールがあるとエラーになります. Partial Type Signatures 参照 dynamic -Wno-partial-type-signatures
-Wderiving-typeable Typeable クラスのインスタンスを導出する宣言がある場合 警告する. GHC 7.10 以降このような宣言は不要でGHC はこのタイプの制約を無にする独自ソルバがあるので このフラグは単に無視される dynamic -Wno-deriving-typeable
-Wmissing-home-modules コマンドラインで指定されていないホームモジュールがあるとき警告する. Cabal で exposed-modules にも other-modules にもリストされていない モジュールを GHC が取り上げないようにするのに役立つ dynamic -Wno-missing-home-modules

7.6.14. 最適化レベルの設定

これらのオプションについて詳しくは options-optimise にあります.

レベル 1 およびレベル 2 で有効になる最適化一覧については 個々の最適化 を参照してください.

Flag Description Type Reverse
-O0 最適化を無効にする(デフォルト) dynamic -O
-O, -O1 レベル 1 の最適化を有効にする dynamic -O0
-O2 レベル 2 の最適化を有効にする dynamic -O0
-Odph レベル 2 の最適化を有効にした上で, -fmax-simplifier-iterations=20 および -fsimplifier-phases=3 を設定する dynamic  

7.6.15. 個々の最適化

これらのオプションについてより詳しくは options-f にあります. -O で有効になるフラグは(別指定をしないかぎり) -O2 ででも有効になります. -O0 で有効になるフラグについては,-O-O2 を指定しても有効にはなりません.

Flag Description Type Reverse
-fcall-arity コール・アリティ最適化を有効にする. -O で有効になる dynamic -fno-call-arity
-fcase-merge case式併合を有効にする. -O で有効になる dynamic -fno-case-merge
-fcase-folding case 式での定数畳み込みを有効にする. -O で有効になる dynamic -fno-case-folding
-fcmm-elim-common-blocks Cmm の共通ブロック除去を有効にする. -O で有効になる dynamic -fno-cmm-elim-common-blocks
-fcmm-sink Cmm シンキングを有効にする. -O で有効になる dynamic -fno-cmm-sink
-fcpr-anal デマンド解析器での CPR 解析を有効にする. -O で有効になる dynamic -fno-cpr-anal
-fcse 共通部分式除去を有効にする. -O で有効になる dynamic -fno-cse
-fdicts-cheap 辞書の値になる式のコストを最適化器が安く見積るようにする dynamic -fno-dicts-cheap
-fdicts-strict 辞書を正格にする dynamic -fno-dicts-strict
-fdmd-tx-dict-sel 辞書選択子専用の要求変換子を使う. つねにデフォルトで有効 dynamic -fno-dmd-tx-dict-sel
-fdo-eta-reduction η-簡約を有効にする. -O で有効になる dynamic -fno-do-eta-reduction
-fdo-lambda-eta-expansion λ-η 展開を有効にする. つねにデフォルトで有効 dynamic -fno-do-lambda-eta-expansion
-feager-blackholing 先行ブラックホール化 を有効にする dynamic  
-fenable-rewrite-rules (多重定義された関数の自動特定により生成された規則を含む) すべての書き換え規則を有効にする. -O で有効になる dynamic -fno-enable-rewrite-rules
-fexcess-precision 中間精度超過を有効にする dynamic -fno-excess-precision
-fexpose-all-unfoldings 非常に大きい関数,再帰関数を含めすべての展開を露出する dynamic -fno-expose-all-unfoldings
-ffloat-in float-in 変換を有効にする. -O で有効になる dynamic -fno-float-in
-ffull-laziness 完全遅延性最適化変換(束縛の外側への移動)を有効にする. -O で有効になる dynamic -fno-full-laziness
-ffun-to-thunk 関数が引数を全く使っていない場合, 関数クロージャをサンクに変換できるようにする. デフォルトでは無効 dynamic -fno-fun-to-thunk
-fignore-asserts ソースプログラム中のアサーションを無視する. -O で有効になる dynamic -fno-ignore-asserts
-fignore-interface-pragmas インターフェイスファイル中のプラグマを無視する. -O0 でのみ有効になる dynamic -fno-ignore-interface-pragmas
-flate-dmd-anal 単純化パイプラインの最後に要求解析を再度走らせる dynamic -fno-late-dmd-anal
-fliberate-case liberate-case 変換を有効にする. -O2 で有効になる dynamic -fno-liberate-case
-fliberate-case-threshold=⟨n⟩ デフォルト: 2000 liberate-case 変換の回数を ⟨n⟩ に設定する dynamic -fno-liberate-case-threshold
-floopification 自己再帰的飽和末尾呼び出しを アセンブリ生成時にローカルジャンプに変換する. -O で有効になる dynamic -fno-loopification
-fmax-inline-alloc-size=⟨n⟩ デフォルト: 128 インライン配列の割り当ての最大サイズを⟨n⟩バイトに設定する. GHC は苗床ブロックに,静的に判明しているサイズの非固定配列を⟨n⟩バイトで割り当てる. GC の過熱を無視しての割り当てになる. この値はブロックサイズ(通常は4096)よりもかなり小さくする必要がある dynamic  
-fmax-inline-memcpy-insns=⟨n⟩ デフォルト: 32 展開後の疑似命令が⟨n⟩バイトを超えない場合 memcpy の呼び出しをインライン展開する. dynamic  
-fmax-inline-memset-insns=⟨n⟩ デフォルト: 32 展開後の疑似命令が⟨n⟩バイトを超えない場合 memset の呼び出しをインライン展開する. dynamic  
-fmax-relevant-binds=⟨n⟩ デフォルト: 6 エラーメッセージに表示する束縛の最大数を設定する dynamic -fno-max-relevant-bindings
-fmax-uncovered-patterns=⟨n⟩ デフォルト: 4 パターンが網羅的でない警告において表示するパターンの最大数を設定する dynamic  
-fmax-simplifier-iterations=⟨n⟩ デフォルト: 4 単純化器の反復最大数を設定する dynamic  
-fmax-worker-args=⟨n⟩ デフォルト: 10 この数までのワーカー引数はアンパックされない dynamic  
-fno-opt-coercion 強制変換最適化を無効にする dynamic  
-fno-pre-inlining 事前インライン展開を無効にする dynamic  
-fno-state-hack 実世界トークンを引数とするλ抽象式をシングルエントリーであるとみなす “state hack” を無効にする. これにより,その内部のものをインライン化してもよいことになる dynamic  
-fomit-interface-pragmas インターフェイスプラグマを生成しない. -O0 でのみ有効になる dynamic -fno-omit-interface-pragmas
-fomit-yields メモリ確保がない場合,GHC がヒープ検査を省略するようする dynamic -fno-omit-yields
-foptimal-applicative-do 遅いがよりよい ApplicativeDo のアルゴリズムを使う dynamic -fno-optimal-applicative-do
-fpedantic-bottoms GHC が底値(ボトム,⊥)をより精密に扱うようにする (ただし -fno-state-hack も参照のこと). 具体的には,case 式を通しての η 展開が行われなくなる dynamic -fno-pedantic-bottoms
-fregs-graph ネイティブコード生成器において,グラフ彩色レジスタ割り付けを使う:ghc-flag:-O2 で有効になる dynamic -fno-regs-graph
-fregs-iterative ネイティブコード生成器において,反復合併グラフ彩色レジスタ割り付けを使う dynamic -fno-regs-iterative
-fsimplifier-phases=⟨n⟩ デフォルト: 2 単純化器のフェーズ数を⟨n⟩に設定する. -O0 を指定するとこの値は無視する dynamic  
-fsimpl-tick-factor=⟨n⟩ デフォルト: 100 単純化器の tick に対するパーセンテージ係数を設定する dynamic  
-fspec-constr SpecConstr 変換を有効にする. -O2 で有効になる dynamic -fno-spec-constr
-fspec-constr-count=⟨n⟩ デフォルト: 3* SpecConstr 変換による1つの関数に対する特定の最大数を⟨n⟩に設定する dynamic -fno-spec-constr-count
-fspec-constr-threshold=⟨n⟩ デフォルト: 2000. SpecConstr 変換用のサイズ閾値を⟨n⟩に設定する dynamic -fno-spec-constr-threshold
-fspecialise 多重定義関数の特定を有効にする. -O で有効になる dynamic -fno-specialise
-fcross-module-specialise 他のモジュール由来の多重定義関数の特定を有効にする dynamic -fno-cross-module-specialise
-fstatic-argument-transformation 静的引数変換を有効にする dynamic -fno-static-argument-transformation
-fstrictness 正格性解析を有効にする. -O で有効になり -fworker-wrapper を有効にする dynamic -fno-strictness
-fstrictness-before=⟨n⟩ 単純化器フェーズ⟨n⟩の前に正格性解析を追加で走らせる dynamic  
-funbox-small-strict-fields ポインタサイズ以下の表現をもつ正格性構成子を平坦化する. -O で有効になる dynamic -fno-unbox-small-strict-fields
-funbox-strict-fields 正格性構成子を平坦化する dynamic -fno-unbox-strict-fields
-funfolding-creation-threshold=⟨n⟩ デフォルト: 750 展開設定の微調整 dynamic  
-funfolding-dict-discount=⟨n⟩ デフォルト: 30 展開設定の微調整 dynamic  
-funfolding-fun-discount=⟨n⟩ デフォルト: 60 展開設定の微調整 dynamic  
-funfolding-keeness-factor=⟨n⟩ デフォルト: 1.5 展開設定の微調整 dynamic  
-funfolding-use-threshold=⟨n⟩ デフォルト: 60 展開設定の微調整 dynamic  
-fvectorisation-avoidance ベクトル化回避を有効にする. つねにデフォルトで有効 dynamic -fno-vectorisation-avoidance
-fvectorise 入れ子になったデータ並列のベクトル化を有効にする dynamic -fno-vectorise
-fworker-wrapper 正格性解析パスの後の worker-wrapper 変換を有効にする. -O および -fstrictness で有効になる. -fno-strictness で無効になる. 正格性解析が無効(-fno-strictness)のときに -fworker-wrapper を有効にしても何の効果もない dynamic -fno-worker-wrapper

7.6.16. プロファイリングオプション

詳しくは Profiling にあります.

Flag Description Type Reverse
-prof プロファイリングを有効にする dynamic  
-fprof-auto INLINEマークが付かないすべての束縛に SCC を自動付与する dynamic -fno-prof-auto
-fprof-auto-top INLINEマークが付かないすべてのトップレベルの束縛に SCC を自動付与する dynamic -fno-prof-auto
-fprof-auto-exported INLINEマークが付かないすべてのエクスポートされる束縛に SCC を自動付与する dynamic -fno-prof-auto
-fprof-cafs すべての CAF に SCC を自動付与する dynamic -fno-prof-cafs
-fno-prof-count-entries エントリー数を収集しない dynamic -fprof-count-entries
-ticky ticky-ticky プロファイリング を有効にする dynamic  

7.6.17. プログラム網羅オプション

より詳しくは Observing Code Coverage にあります.

Flag Description Type Reverse
-fhpc Haskell プログラム網羅率の計測器付与を有効にする dynamic  
-hpcdir ⟨dir⟩ コンパイル中に .mix ファイルを保管するディレクトリ(デフォルトは .hpc)を設定する dynamic  

7.6.18. C プリプロセッサオプション

より詳しくは Options affecting the C pre-processor にあります.

Flag Description Type Reverse
-cpp Haskell のソースファイルに対し C プリプロセッサを走らせる dynamic  
-D⟨symbol⟩[=⟨value⟩] C プリプロセッサのシンボルを定義する dynamic -U⟨symbol⟩
-U⟨symbol⟩ C プリプロセッサのシンボルを未定義にする dynamic  
-I⟨dir⟩ #include ファイルの探索ディレクトリリストに⟨dir⟩を追加する dynamic  

7.6.19. コード生成オプション

より詳しくは Options affecting code generation にあります.

Flag Description Type Reverse
-fasm ネイティブコード生成器 を使う dynamic -fllvm
-fllvm LLVM コード生成器 を使ってコンパイルする dynamic -fasm
-fno-code コード生成を省略する dynamic  
-fwrite-interface つねにインターフェイスファイルを書くようにする dynamic  
-fbyte-code バイトコードを生成する dynamic  
-fobject-code オブジェクトコードを生成する dynamic  
-g⟨n⟩ オブジェクトファイルに DWARF デバッグ情報を含める. ⟨n⟩ は 0, 1, または 2 で大きいほど出力に含まれる情報が多くなる. ⟨n⟩ を省略するとレベル 2 が指定されたものとする dynamic  
-dynamic 動的リンクされるオブジェクトファイルと 実行可能ファイルをビルドする dynamic  
-dynamic-too コンパイル中に 静的オブジェクトファイルに 加えて 動的オブジェクトファイルも生成する dynamic  

7.6.20. リンクオプション

より詳しくは Options affecting linking にあります.

Flag Description Type Reverse
-shared 実行ファイルではなく共有ライブラリを生成する dynamic  
-fPIE 可能であれば位置独立実行コードを生成する dynamic  
-pie リンカに位置独立実行コードを生成するよう指示する dynamic  
-dynload 実行時に共有ライブラリを探索する方法を1つ選択する dynamic  
-framework ⟨name⟩ Darwin/OS X/iOS のみ. フレームワーク ⟨name⟩ をリンクする. このオプションは Apple のリンカ用の -framework オプションに対応する dynamic  
-framework-path ⟨dir⟩ Darwin/OS X/iOS のみ. ⟨dir⟩ をフレームワーク検索ディレクトリリストに追加する このオプションは Apple のリンカ用の -F オプションに対応する dynamic  
-l ⟨lib⟩ ライブラリ ⟨lib⟩ にリンクする dynamic  
-L ⟨dir⟩ ⟨dir⟩ をライブラリ検索ディレクトリリストに追加する dynamic  
-main-is ⟨thing⟩ main モジュールと関数を設定する dynamic  
--mk-dll DLL-生成モード (Windows のみ) dynamic  
-no-hs-main このプログラムには main が含まれないものとする dynamic  
-rtsopts[=⟨none|some|all⟩] RTS の動作をコマンドラインフラグと GHCRTS 環境変数で調整できるかどうかを制御する. none を使用すると RTS フラグは指定できない. some なら最低限の安全なオプションのみ与えられる(デフォルト). all なら(または何も引数なし)すべての RTS フラグが許可される dynamic  
-with-rtsopts=⟨opts⟩ デフォルトの RTS オプションを ⟨opts⟩ に設定する dynamic  
-no-rtsopts-suggestions -rtsopts[=⟨none|some|all⟩] を使ってリンクする提案を表示しない dynamic  
-no-link リンクを省略する dynamic  
-split-objs オブジェクトを分割する(ライブラリ用) dynamic  
-split-sections リンク時デッドコード除去用にセクションを分割する dynamic  
-static 静的 Haskell ライブラリを使う dynamic  
-threaded スレッド化されたランタイムを使う dynamic  
-debug デバッグ用ランタイムを使う dynamic  
-ticky リンク用. 単に -debug を有効にする. Using “ticky-ticky” profiling (for implementors) を参照 dynamic  
-eventlog ランタイムのイベントトレースを有効にする dynamic  
-fno-gen-manifest マニフェストファイルを生成しない(Windows のみ) dynamic  
-fno-embed-manifest 実行ファイルにマニフェストファイルを埋め込まない(Windows のみ) dynamic  
-fno-shared-implib DLL 用のインポートライブラリを生成しない(Windows のみ) dynamic  
-dylib-install-name ⟨path⟩ ライブラリファイルのインストール先のフルパスを示す install name を設定する (これはAppleのリンカに -install_name を渡すことで行なう). 後にこのライブラリをリンクするライブラリや実行ファイルは このライブラリを実行時に探索する場所としてこのパスを選ぶ dynamic  
-rdynamic このオプションはリンカに使用しているシンボルだけではなく すべてのシンボルを動的シンボルテーブルに追加するよう指示する. 現在のところ Linux および Windows/MinGW32 のみ. このオプションは Linux 上では -optl -rdynamic を指定するのと同等. また Windows 上では -optl -export-all-symbols を指定するのと同等 dynamic  

7.6.21. プラグインオプション

より詳しくは Compiler Plugins にあります.

Flag Description Type Reverse
-fplugin=⟨module⟩ 指定されたモジュールからエクスポートされたプラグインをロードする dynamic  
-fplugin-opt=⟨module⟩:⟨args⟩ 指定された引数を指定したプラグインモジュールに渡す. モジュールは -fplugin で指定されていなければならない dynamic  

7.6.22. フェーズの置き換え

より詳しくは Replacing the program for one or more phases にあります.

Flag Description Type Reverse
-pgmL ⟨cmd⟩ ⟨cmd⟩ を文芸的コードのプリプロセッサとして使う dynamic  
-pgmP ⟨cmd⟩ ⟨cmd⟩ を C プリプロセッサとして使う(-cpp を指定したときのみ) dynamic  
-pgmc ⟨cmd⟩ ⟨cmd⟩ を C のコンパイラとして使う dynamic  
-pgmlo ⟨cmd⟩ ⟨cmd⟩ を LLVM 最適化器として使う dynamic  
-pgmlc ⟨cmd⟩ ⟨cmd⟩ を LLVM コンパイラとして使う dynamic  
-pgms ⟨cmd⟩ ⟨cmd⟩ をスプリッタとして使う dynamic  
-pgma ⟨cmd⟩ ⟨cmd⟩ をアセンブラとして使う dynamic  
-pgml ⟨cmd⟩ ⟨cmd⟩ をリンカとして使う dynamic  
-pgmdll ⟨cmd⟩ ⟨cmd⟩ を DLL 生成器として使う dynamic  
-pgmF ⟨cmd⟩ ⟨cmd⟩ を プリプロセッサとして使う(-F を指定したときのみ) dynamic  
-pgmwindres ⟨cmd⟩ ⟨cmd⟩ を Windows でマニフェストを埋め込むためのプログラムとして使う dynamic  
-pgmlibtool ⟨cmd⟩ ⟨cmd⟩ を libtool用のコマンドとして使う(-staticlib を指定したときのみ) dynamic  

7.6.23. 特定のフェーズにオプションを渡す

より詳しくは Forcing options to a particular phase にあります.

Flag Description Type Reverse
-optL ⟨option⟩ ⟨option⟩ を文芸的コードのプリプロセッサに渡す dynamic  
-optP ⟨option⟩ ⟨option⟩ を cpp に渡す(-cpp を指定したときのみ) dynamic  
-optF ⟨option⟩ ⟨option⟩ をカスタムプリプロセッサに渡す dynamic  
-optc ⟨option⟩ ⟨option⟩ を C コンパイラに渡す dynamic  
-optlo ⟨option⟩ ⟨option⟩ を LLVM 最適化器に渡す dynamic  
-optlc ⟨option⟩ ⟨option⟩ を LLVM コンパイラに渡す dynamic  
-opta ⟨option⟩ ⟨option⟩ をアセンブラに渡す dynamic  
-optl ⟨option⟩ ⟨option⟩ をリンカに渡す dynamic  
-optdll ⟨option⟩ ⟨option⟩ を DLL 生成器に渡す dynamic  
-optwindres ⟨option⟩ ⟨option⟩ を windres に渡す dynamic  

7.6.24. プラットフォーム固有のオプション

詳しくは プラットフォーム固有のオプション にあります.

Flag Description Type Reverse
-msse2 (x86 のみ) 浮動小数点演算に SSE2 を使う dynamic  
-msse4.2 (x86 のみ) 浮動小数点演算に SSE4.2 を使う dynamic  

7.6.25. コンパイラをデバッグするためのオプション

より詳しくは Debugging the compiler にあります.

Flag Description Type Reverse
-dcore-lint 内部の正当性検査を有効にする dynamic  
-ddump-to-file 標準出力ではなくファイルにダンプする dynamic  
-ddump-asm アセンブリをダンプする dynamic  
-ddump-bcos インタプリタバイトコードをダンプする dynamic  
-ddump-cmm-from-stg STG-to-C– の出力をダンプする dynamic  
-ddump-cmm-verbose C– のパイプラインパスごとの出力を表示する dynamic  
-ddump-cmm C– の最終的な出力をダンプする dynamic  
-ddump-core-stats 最適化パイプラインの最後に Core プログラムの大きさの一行要約を表示する dynamic  
-ddump-cse CSE の出力をダンプする dynamic  
-ddump-deriv 自動導出(deriving)の出力をダンプする dynamic  
-ddump-ds デシュガー器の出力をダンプする dynamic  
-ddump-foreign foreign export スタブをダンプする dynamic  
-ddump-hpc プログラム網羅率計器付与の後でダンプする dynamic  
-ddump-inlinings インライン化情報をダンプする dynamic  
-ddump-llvm LLVM 中間コードをダンプする. -fllvm が有効になる dynamic  
-ddump-occur-anal 出現解析器の出力をダンプする dynamic  
-ddump-opt-cmm C– to C– 最適化パスの結果をダンプする dynamic  
-ddump-parsed 構文解析木をダンプする dynamic  
-ddump-prep prepare core をダンプする dynamic  
-ddump-rn 名前変更器の出力をダンプする dynamic  
-ddump-rule-firings 規則の発動情報をダンプする dynamic  
-ddump-rule-rewrites 規則の詳細な発動情報をダンプする dynamic  
-ddump-rules 規則をダンプする dynamic  
-ddump-vect ベクトル化器の入力と出力をダンプする dynamic  
-ddump-simpl 単純化器の最終出力をダンプする dynamic  
-ddump-simpl-iterations 単純化器の各反復段階ごとの出力をダンプする dynamic  
-ddump-spec 特定器の出力をダンプする dynamic  
-ddump-splices TH でスプライスした式および評価結果をダンプする dynamic  
-ddump-stg 最終段階の STG をダンプする dynamic  
-ddump-stranal 正格性解析器の出力をダンプする dynamic  
-ddump-str-signatures 正格性シグネチャをダンプする dynamic  
-ddump-tc 型検査器の出力をダンプする dynamic  
-dth-dec-file=⟨file⟩ .th.hs ファイルにある評価済み TH 宣言を表示する dynamic  
-ddump-types 型シグネチャをダンプする dynamic  
-ddump-worker-wrapper worker-wrapper の出力をダンプする dynamic  
-ddump-if-trace インターフェイスファイルをトレースする dynamic  
-ddump-tc-trace 型検査器をトレースする dynamic  
-ddump-vt-trace ベクトル化器をトレースする dynamic  
-ddump-rn-trace 名前変更器をトレースする dynamic  
-ddump-rn-stats 名前変更器の統計情報をダンプする dynamic  
-ddump-simpl-stats 単純化器の統計情報をダンプする dynamic  
-dno-debug-output 要求外のデバッグ出力を抑制する dynamic  
-dppr-debug デバッグ表示を有効にする(かなり饒舌) dynamic  
-dppr-user-length エラーメッセージで表示する式の深さを設定する dynamic  
-dppr-cols=⟨n⟩ デバッグ出力の幅を設定する. たとえば -dppr-cols200 などとする dynamic  
-dppr-case-as-let 選択肢が1つの case 式を正格な let 束縛として表示する dynamic  
-dsuppress-all コアダンプで抑制可能なもの (1つしか無いものをのぞいて)すべて抑制する dynamic  
-dsuppress-uniques デバッグ出力で1つしかないものの表示を抑制する(diff を使いやすくするため) dynamic  
-dsuppress-idinfo 識別子の束縛位置について拡張情報を抑制する dynamic  
-dsuppress-unfoldings 変数の束縛位置での安定展開を表示するのを抑制する dynamic  
-dsuppress-module-prefixes モジュール修飾接頭辞の表示を抑制する dynamic  
-dsuppress-type-signatures 型シグネチャを抑制する dynamic  
-dsuppress-type-applications 型適用を抑制する dynamic  
-dsuppress-coercions コアダンプの中で型変換を表示するのを抑制し コアダンプを短くする dynamic  
-dsource-stats Haskell ソースの統計情報をダンプする dynamic  
-dcmm-lint C– パスの正当性検査 dynamic  
-dstg-lint STG パスの正当性検査 dynamic  
-dstg-stats STG の統計情報をダンプする dynamic  
-dverbose-core2core core-to-core パスの各段階ごとに出力を表示する dynamic  
-dverbose-stg2stg STG-to-STG パスの各段階ごとに出力を表示する dynamic  
-dshow-passes 各段階の名前を出現ごとに表示する dynamic  
-dfaststring-stats fast string の利用終了時にその統計情報を表示する dynamic  
-frule-check 発動する可能性があったのに発動しなかったルールの場所を報告する. 文字列引数を1つとる dynamic  

7.6.26. その他のコンパイルオプション

Flag Description Type Reverse
-j[⟨n⟩] --make でコンパイルする時, ⟨n⟩ 個のモジュールを並列にコンパイルする dynamic  
-fno-hi-version-check .hi ファイルが合致しなくても文句は言わない dynamic  
-fhistory-size 単純化の履歴をサイズを設定する dynamic  
-fno-ghci-history GHCi のコマンド履歴を ghci_history に記録したり読み出したりしない dynamic  
-fno-ghci-sandbox GHCi のサンドボックスを無効にする. 計算はフォークしたスレッドではなく主スレッドで動作する. dynamic  
-flocal-ghci-history GHCi のコマンド履歴ファイル .ghci-history の置き場を現在のディレクトリにする dynamic -fno-local-ghci-history