gpt4 book ai didi

haskell - GHC panic : Loading temp shared object failed

转载 作者:行者123 更新时间:2023-12-04 11:50:09 25 4
gpt4 key购买 nike

我们正在开发 Parsec 的一个分支(具有完整的 QuickCheck 测试套件、更好的错误消息和其他改进),并且已经取得了一些进展。大多数时候,我使用 Emacs 的 REPL,指定构建目标 tests (也就是说,显然是测试套件的名称)。这一直运作良好。

现在我们的东西通过了测试,一切似乎都很好,但是如果我用库目标(或省略它,即 cabal replcabal repl lib:megaparsec )启动 REPL 并做一些事情,我会得到 GHC panic :

λ> parseTest (string "rere" <* eof) "reri"
ghc: panic! (the 'impossible' happened)
(GHC version 7.10.1 for x86_64-unknown-linux):
Loading temp shared object failed: /tmp/ghc9380_0/libghc9380_93.so: undefined symbol: _hpc_tickboxes_megapzuEw3SHAmfXgNLpm5a31oXO6_TextziMegaparsecziError_hpc

Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug

由于代码通过 cabal repl tests 编译并正常工作,我得出结论,这无论如何都不是我的编程错误,但可能是一个错误。

我找到了这张票: https://ghc.haskell.org/trac/ghc/ticket/10761 ,但我们的库不使用 Template Haskell。

实际问题是:我应该怎么做以及如何解决这个问题?我什至无法判断它是 Cabal 还是 GHC,我不知道如何构建可以重现问题的最小示例。

我已经举报了:

https://ghc.haskell.org/trac/ghc/ticket/10765#ticket

最佳答案

如果您仔细阅读错误,您会注意到缺少的函数与 hpc 有关:

undefined symbol :_hpc_tickboxes_megapzuEw3SHAmfXgNLpm5a31oXO6_TextziMegaparsecziError_hpc

我的猜测是,HPC(haskell 程序覆盖率)所做的检测与 GHCi 所做的 haskell 代码的交互式加载不兼容。禁用 HPC(cabal clean 后跟 cabal configure,确保在配置时禁用覆盖)应该可以解决问题。

我建议在 GHC 错误跟踪器上报告一个错误(尽管这也可能是一个 cabal 的错误,不确定是谁的错)。

关于haskell - GHC panic : Loading temp shared object failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com