你如何在 Haskell 中安装分析库?

Posted

技术标签:

【中文标题】你如何在 Haskell 中安装分析库?【英文标题】:How do you install profiling libraries in Haskell? 【发布时间】:2021-10-25 23:08:18 【问题描述】:

运行后

ghc --make -prof -fprof-auto -rtsopts encode.hs

我收到此错误:

Failed to load interface for ‘Data.Text’
Perhaps you haven't installed the profiling libraries for package ‘text-1.2.5.0’?
Use -v to see a list of the files searched for.

我试过了:

cabal install -p text --reinstall

这里建议:

https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/profiling.html

我的 ghc 版本是 8.0.2,所以也许我应该看看其他文档。

【问题讨论】:

您是否有理由直接调用ghc 而不是使用cabalstack 之类的工具来构建encode.hs?如果没有,我很乐意写一个答案,描述如何使用cabal 完成此操作。 没有具体原因,只是我知道该怎么做 【参考方案1】:

一种方法是创建一个带有main-isencode.hs 的可执行文件的cabal 包。完成后,您将运行

cabal configure --enable-profiling --profiling-detail toplevel-functions

一次;随后的cabal build 命令和类似的命令应该做正确的事情。不过,值得注意的一件事是,在使用cabal 时,需要注意将 RTS 选项传递给正确的程序。配方如下:

cabal run exe:encode -- +RTS ... -RTS

出现在-- 之前的任何+RTS/-RTS 块都将转到cabal;之后的人将进入您的计划。

【讨论】:

感谢您的回复。我只是不确定如何制作 cabal 包,所以我不知道如何尝试您的解决方案。 @Chebi 新建一个目录,把encode.hs放进去,然后运行cabal init。之后您可能需要将依赖项添加到 build-depends 节,但我认为它应该自动检测 encode.hs 并将其标记为可执行文件。

以上是关于你如何在 Haskell 中安装分析库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Haskell 平台中安装具有分析支持的 ghc 和 base

如何在 Jython 中安装 ODBC 库

如何在 Ubuntu 中安装 libwebsocket 库?

如何在 .Net v 4 项目中安装 Dataflow 库?

在沙箱中安装了 parsec,但在 ghci 中尝试加载文件时找不到库

如何在 Jython 中安装各种 Python 库?