25

cabal replライブラリのデバッグには非常に便利ですが、ghci は cabal パッケージの依存関係ではないすべてのパッケージを非表示にします。これは確かに にとっては良いことですがcabal buildrepl簡単なテストのために無関係なパッケージから何かをロードできないことを意味します。

を発行することで任意のパッケージにアクセスできます:set -package、これにより、作業中のパッケージからすべてのモジュールがアンロードされ、cabal repl.

インストールしたパッケージを単純にロードする良い方法は何ですか?

4

4 に答える 4

33
cabal repl --ghc-option='-package xyz'

これにより、呼び出し元のパッケージとパッケージがロードさcabal replれますxyz

事後にそれを行うには、つまり、すでに REPL にいて、別のパッケージから追加のヘルパー モジュールをロードしたい場合:

GHCi> :set -package xyz
GHCi> :m +XYZ.Module.You.Suddenly.Need
于 2014-07-15T20:32:41.653 に答える
2

1 つの方法 (最適ではありません) は、cabal ファイルを変更して manual/false フラグextra_dependencyを追加し、必要な依存関係を条件付きbuild-dependsセクションに追加することです。

実際の問題は、ライブラリにアクセスするたびに cabal ファイルを手動で編集する必要があることですhiddenが、少なくとも、ライブラリはそれらのライブラリに正式に依存していません。

それ以外の場合は、サンドボックス キャッシュを調べるようにモジュール パスを設定できる場合があります。

于 2014-07-14T13:32:30.433 に答える