我想通过捎带进入GHC编译过程并改变其核心表示来测试实现编译器优化。这个想法是有类似的东西:
runGhc (Just libdir) $ do
...
c <- compileToCoreModule targetFile
compileCoreToObj False (modify c)
...
其中modify
采用Core表示并返回修改后的版本。但是,这段代码失败了(即使修改什么也没做),但是没有非常有用的消息:
expectJust mkStubPaths
有关如何使这项工作的任何想法,或者甚至可能以这种方式实现代码转换?