考虑以下代码:
module TestPlugin where
import GhcPlugins
plugin :: Plugin
plugin = defaultPlugin {installCoreToDos = install}
install opts todos = do
putMsgS "Hello world"
return todos
此代码可完美编译。如果我要求Cabal将其注册为软件包,则可以正常工作。但是,如果我尝试使用该插件,则会发生这种情况:
> ghc -fplugin=TestPlugin HelloWorld.hs
Access violation in generated code when reading 0xffffffffffffffff
Attempting to reconstruct a stack trace...
Frame Code address
* 0x22dae0 0x131173f C:\Program Files\Haskell Platform\8.6.3\bin\ghc.exe+0xf1173f
* 0x22dae8 0x1
* 0x22daf0 0x4b40022dbc8
* 0x22daf8 0x231790
无论我尝试编译哪个实际源文件,这种情况似乎都会发生。如果有人能告诉我如何使这个令人发指的错误消失,那真是太棒了。
Windows 7,64位。我可以找到最新的Haskell平台(今天下载,64位版本),GHC 8.6.3。
由于这是官方文档中的示例插件,所以我不认为我的代码做错了什么。这是已知的错误还是什么?