GHC -ddump-splices选项 - 模板Haskell

Mat*_*w H 17 haskell ghc template-haskell

我正在关注Yesod的书,其中指出:

但是通过使用-ddump-splices GHC选项,我们可以立即查看生成的代码.一个很清理的版本是:

我该怎么做?我已经尝试用我的文件编译ghc -XTemplateHaskell -ddump-splices Page.hs,它留下了如下目录:

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

但是,这些文件都不包含Template Haskell生成的中间代码.

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

Dan*_*her 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
Run Code Online (Sandbox Code Playgroud)

在充分的bash状贝壳上.

  • 我不知道.可能有原因,或者可能是历史事故.人们可能需要向总部询问答案. (3认同)