カスタムghc プラグインに取り組んでいます。テストするために、ハックのすべてのパッケージで実行したいと思います。私はこれで2つの困難に直面しています。
まず、-fplugin=MyPlugin
パッケージをインストールするときにオプションを ghc に渡す必要があります。これを行う唯一の方法は、myghc.sh
以下を含むファイルを作成することです。
#!/bin/sh
ghc -fplugin=MyPlugin $@
そして実行しcabal install --with-compiler=./myghc.sh
ます。しかし、そのコマンドを実行すると、エラーが発生します
Could not find module 'MyPlugin'
it is a member of the hidden package...
cabal install
すべてのパッケージの cabal ファイルを変更せずにプラグインを使用するために渡すことができる特別なフラグはありますか?
次に、コンパイルしているパッケージに関する情報をプラグインに記録させたいので、パッケージがこの情報を知る方法が必要です。
やり方はいろいろあるようですが、とりあえずこんな感じにしました。パッケージのすべての依存関係がリストの前に来ることが保証されるように、順序付けされたハック パッケージのリストが必要ですか? 次に、 を実行するcabal install
と、インストールするパッケージの名前をプラグインに渡すことができます。依存関係は既にインストールされているので、間違った名前でインストールされる心配はありません。