Stack / Docker / IHaskell奇怪的行为

时间:2015-08-17 15:40:20

标签: haskell docker cabal jupyter ihaskell

我有一个包含* .c和* .cpp文件的软件包,列在c-sources文件的*.cabal字段中。我需要将它包含在IHaskell和其他一些软件包的项目中。一切正常,构建没有问题。 stack exec ghci工作正常,我可以导入模块并执行任何代码。 stack ghci虽然会抛出一些奇怪的错误,例如:

In file included from <command-line>:10:0: 

/...blabla.../.stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/autogen/cabal_macros.h:157:0:
     note: this is the location of the previous definition
     #define CURRENT_PACKAGE_KEY "blabla"
     ^

我的包中的stack ghci抱怨从C代码导出的符号。另一个奇怪的事情是符号依赖于配置中exposed-modules的顺序,所以如果我将* .hs模块放在其他模块之上,那么错误就会消失,但如果我有两个* .hs文件从相同* .c文件,它将无法正常工作! stack exec jupyter -- console --kernel haskell启动,但如果我尝试从我的包中运行一些代码,则会立即抛出unknown symbol错误,但总是相同。

我有一个基于fpco/stack-build的docker镜像,它只是安装了jupyter和其他必要的东西。我使用lts-3.0快照,如果它有某种相关性。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

最近对堆栈ghci进行了很多改进,这仍然主要是正在进行的工作。我建议测试堆栈主机,如果问题仍然存在,则打开Github问题。