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 |
:print で Show のインスタンス使用を有効に設定. ブレイクポイントと変数内容の表示 参照 |
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 |
|
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 |