GHCiはghci
またはghc ––interactive
というコマンドで起動される。一つまたは複数のモジュールやファイル名をコマンド行から指定することもできる。そうすると、GHCiは、プロンプトで:load
と入力されたときと同じように(2.7. GHCiのコマンド群を見よ)、指定されたモジュールやファイル(と、それらが依存するモジュール)をロードする。例えば、GHCiを起動して、プログラム(module
Main.hs
に最上位モジュールがある)をロードするには、次のように打てば良い。
$ ghci Main.hs
GHCが受け付けるコマンド行オプション(第4章. GHCを使うを見よ)の大部分は対話的モードでも有効であり、そうでないオプションは大抵明らかである。
大部分のパッケージ(4.9.1. パッケージを使う を見よ)は追加のフラグを指定することなく利用可能であり、初めて必要になったときに自動的にロードされる。
一方で、隠されたパッケージについては、-package
フラグを使ってロードを依頼する必要がある。
$ ghci -package readline GHCi, version 6.8.1: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Loading package readline-1.0 ... linking ... done. Prelude>
起動中のGHCiから新しいパッケージをロードするには、次のコマンドが使える。
Prelude> :set -package name
ただし、これをするとロードされているモジュールが全て未ロードになり、Prelude
に戻されることになるので注意。
追加のライブラリは、コマンド行から、通常の-l
オプションを使って指定することができる。(ここでいうライブラリとは、他言語のオブジェクトコードのライブラリのことである。Haskellソースのライブラリを使うことについては、2.2.1. モジュールとファイル名を見よ)例えば、「m」ライブラリをロードするには、次のようにすれば良い。lib
$ ghci -lm
.so
形式の共有ライブラリを使うシステムでは、実際にロードされるライブラリはlib
である。GHCiは、ライブラリを探すとき、以下の場所をこの順で試す。lib
.so
-L
コマンド行オプションで指定されたパス。path
システムの標準ライブラリ探索パス。これは、システムによっては、LD_LIBRARY_PATH
環境変数を設定することで変更できる。
.dll
形式の共有ライブラリを使うシステムでは、実際にロードされるライブラリは
である。この場合も、ライブラリが見付からなかった場合はGHCiはエラーを報告する。lib
.dll
GHCiは単なるオブジェクトファイル(プラットフォームによって、.o
か.obj
である)をコマンド行からロードすることもできる。これには、オブジェクトファイルの名前をコマンド行に追加するだけで良い。
-l
の順序は意味を持つ。あるライブラリは、それが依存するライブラリよりも前に言及されなければならない。(4.12.6. リンクに影響するオプションを見よ)