3

私はかなり大きな haskell プロジェクトを持っており、一部のファイルで ghci を実行すると、プロンプトが表示されるまでに数十または数百のモジュールをコンパイルする必要があり、数分かかることがあります。私は cabal を使用しているので、通常、オブジェクト ファイルは dist/ の下にコンパイル済みです。ただし、ghci は、ソース .hs ファイルの隣にある .o ファイルのみを検索します。それは cabal の dist/ について知りません。すべてを独自に再コンパイルするのではなく、ghci にこれらのオブジェクト ファイルをロードさせる簡単で良い方法はありますか?

私はそれを行うには複雑で醜い方法を持っているので、単純で良い方法を求めています。:) たとえば、これにより ghci は cabal のコンパイル済みモジュールを再利用します。このコマンド ラインは、cabal が ghc を実行する方法をコピーして変更し、ghci が確実にモジュールをロードするために必要な最後の cabal ビルドとすべてが同じになるように設定することで思いつきました。

ghci -package-conf dist/package.conf.inplace -i -idist/build/git-annex/git-annex-tmp -i. -idist/build/autogen -Idist/build/autogen -Idist/build/git-annex/git-annex-tmp -optP-include -optPdist/build/autogen/cabal_macros.h -odir dist/build/git-annex/ git-annex-tmp -hidir dist/build/git-annex/git-annex-tmp -stubdir dist/build/git-annex/git-annex-tmp -XHaskell98 dist/build/git-annex/git-annex-tmp /Utility/libdiskfree.o dist/build/git-annex/git-annex-tmp/Utility/libmounts.o

「cabal ghci」がこのコマンドラインを計算して実行することは可能であるように思われます。または、おそらく私が知らないツールがすでにそうしていることを知りません。

4

1 に答える 1

0

次のように、odir および ohi オプションを設定して、cabal ビルド ディレクトリを指すようにすることができます

于 2013-02-28T19:15:51.607 に答える