4.5. 実行モードにある、--help
、--version
、--numeric-version
、--print-libdir
の各モードも参照。
-v
-v
はGHCを多弁にする。GHCはバージョン番号を報告し、コンパイルシステムの段階ごとに、どのようにそれを起動したか(標準エラー出力に)表示する。さらに、大部分のコンパイル段階に対しても-v
を渡し、渡されたものはバージョン番号(ほかの情報もあるかもしれない)を報告する。
心よりのお願いとして、バグを報告するときは-v
オプションを使って頂きたい!我々は常に、あなたが正しいものを正しい順序で走らせているということを最初に確かめたいのである。
-v
n
より正確にコンパイラの多弁さを制御するために、-v
は省略可能な数値引数をとる。-v
を単独で指定するのは-v3
と同じで、そのほかの水準は以下のような意味を持っている。
-v0
本質的でないメッセージを表示しない。(これがデフォルトである)
-v1
最小限の多弁さ。コンパイル一回毎に一行を表示する。(--make
または--interactive
が有効のときはこれがデフォルト)
-v2
コンパイル段階が実行されるときに、その名前を印字する。(-dshow-passes
と同等)
-v3
-v2
と同じであるが、各コンパイル段階について完全なコマンド行(あれば)を印字する。
-v4
-v3
と同じだが、各コンパイル段階が終わった後にその段階での中間形式でプログラムを表示する。(プリプロセスの結果とC/アセンブリファイルを除く)
--fprint-explicit-foralls, -fprint-explicit-kinds
これら二つのフラグは、エラーメッセージやGHCiにおいてGHCが型を表示する際、そのやりかたに影響する。-fprint-explicit-foralls
は、型の最上位において明示的に(通常表示されない)forall
を表示する。以下はGHCi内での例である。
ghci> let f x = x ghci> :t f f :: a -> a ghci> :set -fprint-explicit-foralls ghci> :t f f :: forall a. a -> a
-fprint-explicit-kinds
を使うと、通常抑制される型内の種forallと種適用を表示するようになる。種多相を使っている場合、これが重要になることがある。例を挙げる。
ghci> :set -XPolyKinds ghci> data T a = MkT ghci> :t MkT MkT :: T b ghci> :set -fprint-explicit-foralls ghci> :t MkT MkT :: forall (b::k). T b ghci> :set -fprint-explicit-kinds ghci> :t MkT MkT :: forall (k::BOX) (b:k). T b
-ferror-spans
エラーメッセージに関連する構文要素がソースで占める位置を完全に出力するようにする。通常、GHCは構文要素の先頭の位置しか報告しない。
例えば、次のものは、
test.hs:3:6: parse error on input `where'
以下のようになる。
test296.hs:3:6-10: parse error on input `where'
また、複数行に渡る区間もあり得る。
test.hs:(5,4)-(6,7): Conflicting definitions for `a' Bound at: test.hs:5:4 test.hs:6:7 In the binding group for: a, b, a
行番号は一からはじまるが、カラム番号は零からはじまることに注意。これは既存の慣習に合わせたものである。(つまり、Emacsがこの方法を使っているということ)
-H
size
ヒープの最小サイズをsize
にする。これは-RTS -H
と同等である。4.17.3. ガベッジコレクタを制御するためのRTSオプションを見よ。size
-Rghc-timing
GHCの実行に要した時間についての統計情報の一行要約を表示する。このオプションは+RTS -tstderr
と同等である。4.17.3. ガベッジコレクタを制御するためのRTSオプションを見よ。