18

私はYesodの本に従っています:

しかし、-ddump-splices GHC オプションを使用すると、生成されたコードをすぐに見ることができます。それの大幅にクリーンアップされたバージョンは次のとおりです。

どうすればいいですか?ファイルを でコンパイルしようとしましghc -XTemplateHaskell -ddump-splices Page.hsたが、ディレクトリは次のようになります。

Page Page.hi Page.hs Page.hs~ Page.o

ただし、これらのファイルには、テンプレート Haskell によって生成された中間コードは含まれていません。

http://www.yesodweb.com/book/basics

4

2 に答える 2

17

一方、動作が変更され、-ddump-to-fileフラグに加えて-ddump-splicesフラグにより​​、スプライスがファイルに書き込まれます。詳細については、現在の (GHC 8.2.1) ドキュメントのセクション 9.26を参照してください。


GHC の古いバージョン (動作が変更された正確なバージョンは確認していません) では、動作が-ddump-splices異なります。

この-ddump-splicesオプションにより、GHC はスプライスを stderr にダンプします。残念ながら、この-ddump-to-fileフラグはスプライスには影響しません (これに深い理由があるのか​​、単なる見落としなのかはわかりません)。したがって、stderr 出力をキャプチャして、後で調査するためにスプライスを保存する必要があります。

ghc -XTemplateHaskell -ddump-splices Page.hs 2> Page.dump-splices

十分にbashに似たシェルで。

于 2013-04-06T12:59:05.550 に答える