问题标签 [haskell-stack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2347 浏览

haskell - 如何使用堆栈工作台?

刚刚尝试在我已从 cabal 转换为 stack 的项目上运行基准测试。运行stack bench只是打印出来project-name-version: benchmarks,没有进一步的输出。我是否必须将其他标志传递给堆栈才能查看标准输出?

基准部分供参考:

编辑:这是在stack-0.1.6.0

(这与如何使用堆栈工作台没有重复:))

0 投票
1 回答
1448 浏览

haskell - GHC 链接器错误(堆栈)

我有点像 Haskell 的初学者,我正在尝试使用堆栈来构建应用程序。

但是,stack build执行时给我链接器错误:

查看标签告诉我它与此函数中的闭包有关:

但是那里真的没有闭包吗?如果我lint

它编译得很好。

我可以很好地执行stack ghci和玩弄完整的实现。lint为什么链接失败?

0 投票
1 回答
241 浏览

haskell - 包含导入 Gloss 的项目时,`stack ghci` 失败

如果在 Stack 项目中导入 Gloss 并使用stack ghci,则会出现以下错误:

这怎么能解决?

0 投票
0 回答
160 浏览

haskell - `stack build` 需要很长时间才能传递错误消息。我该如何改进它?

我正在使用堆栈来组织我的 Haskell 项目,如下所示:

也就是说,我有很多目录,每个目录都包含一个包,以及一个包含这些目录的单一堆栈环境。在我的工作流程中,我stack build用来获取编译错误并指导我的工作。问题是给我正确的错误消息需要太长时间,并且它会重建我编辑的每个文件的每个依赖项。我喜欢交互式工作——也就是说,我编辑几行代码,编译,重复——总是一次只编辑一个文件。这大大减慢了我的工作流程。

在使用stack(全局安装)之前,我只会在我正在编辑的文件上运行 GHCI,但这不再适用了。有什么方法可以加快在我的设置中获取错误消息的速度吗?

这是的输出stack build --verbose

0 投票
0 回答
281 浏览

haskell - 如何使用堆栈自动构建测试模块?

我有这个Spec.hs

我计划将更多来自其他模块的测试套件添加到它的main.

当我运行测试时:

发生了几件事:

  • 更改时会重新运行OtherSpec.hs测试,但不会重新构建测试可执行文件。
  • 当我更改Spec.hs测试可执行文件时,将重新构建并OtherSpec.hs选择更改。

有没有办法在OtherSpec.hs更改时触发重建?


我正在使用堆栈版本 0.1.2.0。

0 投票
2 回答
705 浏览

haskell - 使用堆栈生成覆盖率报告

我想使用 Stack 生成代码覆盖率报告。我运行的命令相当于(省略通过 传递给测试套件的选项--test-arguments):

这将执行测试,然后输出以下内容:

错误:myproject 的测试套件“测试”的覆盖率报告没有考虑任何代码。一个可能的原因是您的测试套件构建了库代码(请参阅堆栈问题 #1008)。它也可能表明堆栈或 hpc 程序中的错误。如果您认为您的覆盖率报告应该有有意义的结果,请报告此问题。

我认为它应该(这会创建空报告)。我的包的所有组件的 GHC 选项都是相同的。不需要测试套件来重建库。毕竟,如果 Cabal 可以生成报告,Stack 应该能够在相同的 Cabal 配置下做到这一点,还是我弄错了?

我 按照建议在 Stack GitHub repo上打开了一个问题。


过了一段时间,我决定创建一个好的旧沙箱并使用 Cabal 生成报告(我真的需要查看报告,你知道的)。它以前有效,但现在我得到:

什么?尽管我之前生成了许多报告,但我从未见过这种情况。上面有人刚刚决定我今天不会收到那份报告,看来。


你知道如何使用 Stack 生成覆盖率报告吗?有人成功了吗?

0 投票
1 回答
6306 浏览

haskell - 了解 Haskell 的堆栈程序以及解析器和 LTS 版本

我试图了解如何使用stack 和 stackage.org。当我第一次安装并使用它时,stackage.org 位于 LTS-3.8(“解析器”)。从那时起,stackage.org 现在有了 LTS-3.11。

首先,我想确认这意味着什么。Stackage 是一个包存储库,对于特定的 LTS 版本(比如 3.8),这些包已经过验证可以协同工作。所以 LTS-3.8 的包一起工作,LTS-3.11 的包也一起工作。继续 ...

当我运行时stack new projectname,堆栈告诉我:

这是否意味着该项目已设置为仅使用在 LTS-3.8 下验证的包和版本?

如果我现在想开始一个新项目并想在新项目中使用最新的 LTS 版本,我如何告诉堆栈默认执行此操作?

如果我想“升级”旧项目以使用新的 LTS 版本怎么办?

0 投票
0 回答
152 浏览

haskell-stack - 使用 stack 安装 stack 项目 extra-deps

当在索引中都找不到两者时,如何构建a具有依赖关系的项目?bstack

我使用stack installb,添加了,extra-deps但仍然无法构建a

为什么b不在我的“包索引”中?我应该如何构建项目a

0 投票
2 回答
707 浏览

haskell - 使用堆栈时编辑“.ghci”文件

我已经开始使用 Stack 并且找不到要编辑的 .ghci 文件(我希望包含:set -XOverloadedStringsand :set prompt "ghci> ")。

要搜索.ghci我使用的文件-

这没有返回任何搜索结果。我查看了 Stack 文档,但找不到有关编辑.ghci文件的信息。是否有可能保存:set -XOverloadedStrings:set prompt "ghci> "某处?

0 投票
1 回答
79 浏览

haskell - 使用 Haskell Stack 构建工具的项目之间的依赖关系——最佳工作流程?

我刚刚使用stack包管理器和构建工具开始了一个相对较大的 Haskell 项目,我正在尝试找出将其拆分为多个stack项目的最佳方法,这些项目之间存在依赖关系。

本质上,虽然我相信我了解如何stack在我的项目中包含从 Stackage 下载的外部包,但我不明白如何包含来自其他本地项目的包。如何使用stack可以在其他项目中使用的库来创建库?