Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stack/Docker/IHaskell怪异行为_Haskell_Docker_Cabal_Jupyter_Ihaskell - Fatal编程技术网

Stack/Docker/IHaskell怪异行为

Stack/Docker/IHaskell怪异行为,haskell,docker,cabal,jupyter,ihaskell,Haskell,Docker,Cabal,Jupyter,Ihaskell,我有一个包含大量*.c和*.cpp文件的包,列在c-sources字段的*.cabal文件中。我需要将它包含在IHaskell和其他一些包的项目中。一切都很好,构建起来没有问题stack exec ghci工作正常,我可以导入模块并执行任何代码堆栈ghci虽然会抛出一些奇怪的错误,如下所示: In file included from <command-line>:10:0: /...blabla.../.stack-work/dist/x86_64-linux/Cabal-1.

我有一个包含大量*.c和*.cpp文件的包,列在
c-sources
字段的
*.cabal
文件中。我需要将它包含在IHaskell和其他一些包的项目中。一切都很好,构建起来没有问题
stack exec ghci
工作正常,我可以导入模块并执行任何代码<代码>堆栈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"
     ^
包含在以下文件中:10:0:
/…blabla…/.stack work/dist/x86_64-linux/Cabal-1.22.4.0/build/autogen/Cabal_macros.h:157:0:
注意:这是先前定义的位置
#定义当前_包_键“blabla”
^
我的包中的堆栈ghci抱怨从其C代码导出的符号。另一件奇怪的事情是,符号取决于配置中公开模块的顺序,因此如果我将*.hs模块放在其他模块之上,错误就会消失,但是如果我有两个*.hs文件从同一个*.c文件导入,它将不起作用
stack exec jupyter--console--kernel haskell
启动,但如果我试图从包中运行一些代码,会立即抛出
unknown symbol
错误,尽管如此

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


发生了什么事

最近对堆叠ghci进行了很多改进,这大部分仍在进行中。我建议测试stack master,如果问题仍然存在,则打开Github问题