标签: haskell-stack

如何在堆栈中使用"-ddump-minimal-imports"

我是堆栈的忠实粉丝,我已经从我的机器上完全删除了任何独立的cabal和ghc可执行文件(让堆栈在它自己神秘的〜/ .stack /目录中安装它需要的任何东西)....

但是,看起来有些标志在堆栈下无法正常工作.例如,我想使用-ddump-minimal-imports.在cabal这将是

cabal build --ghc-option=-ddump-minimal-imports
Run Code Online (Sandbox Code Playgroud)

明显的翻译是

stack build --ghc-options -ddump-minimal-imports
Run Code Online (Sandbox Code Playgroud)

这运行,但只生成可执行文件(据我所知,至少......也许输出是在神秘的〜/ .stack目录中的某个地方).

有没有办法做到这一点?

haskell haskell-stack

6
推荐指数
1
解决办法
264
查看次数

使用堆栈工具管理hoogle索引

上下文:在stack我停止使用hoogle本地之前因为我的索引会以某种方式与已安装的软件包失去同步 如果我没记错的话,我在ghci命令行和cabal沙箱中遇到了不同结果的问题.

我可以利用stack环境管理本地hoogle数据库吗?

haskell hoogle haskell-stack

6
推荐指数
1
解决办法
809
查看次数

我应该使用堆栈来构建并上传到Hackage吗?

随着时间的推移,我开发了一个混乱的系统级Haskell安装,我不知道如何彻底清理.但是在大多数情况下,这并不是很重要,因为我只是使用堆栈来管理每个项目的Haskell配置.但是,由于我的项目要求与我的系统Haskell设置不同,我想知道为Hackage构建和上传包的最佳方法是什么.

具体来说(1)我应该使用

stack exec -- cabal sdist
stack exec -- cabal upload
Run Code Online (Sandbox Code Playgroud)

而不是简单的

cabal sdist
cabal upload
Run Code Online (Sandbox Code Playgroud)

(2)是否有任何理由安装项目版本的cabal(带stack build cabal?)

或者是否有一些更好的基于堆栈的方法来构建和分发到Hackage,而不涉及cabal直接调用?

haskell cabal hackage haskell-stack

6
推荐指数
1
解决办法
610
查看次数

如何使用自定义haddock可执行文件生成堆栈文档?

我正在为Haddock制作一个新的主题,并希望在一些真实的项目中尝试它.如何配置堆栈以使用我的haddock可执行文件?我没有在stack.yaml中看到任何配置选项.我也尝试将新的haddock可执行文件放入我的PATH,但这没有用.

haskell haddock haskell-stack

6
推荐指数
0
解决办法
186
查看次数

Haskell堆栈本地服务器

我在防火墙后面有关于从互联网下载软件的严格规则,所以我想知道是否可以一次下载整个堆栈LTS快照并在本地服务器上提供服务,然后我们可以指向堆栈工具.

通过"快照",我将指代所有包的源代码,因为理想情况下我们需要从该本地服务器绘制以构建多个(堆栈支持的)平台(Linux,Windows).

例如,能够转到防火墙内的新机器,然后运行"stack new",然后编辑yaml文件以将其指向具有给定解析器编号的本地堆栈服务器,那么它会表现得很好通常从那时起,除了总是从本地服务器下载包.

编译器怎么样?我知道堆栈也下载了编译器,所以我想这些必须包含在下载的各种平台的快照包中吗?

谢谢

haskell stackage haskell-stack

6
推荐指数
0
解决办法
198
查看次数

如何获取堆栈构建/安装以包含资源文件(配置,图像等)

在拾取堆栈作为开始编写非平凡的haskell程序(大于单个文件)的一步之后,我遇到了不知道如何获取堆栈以识别.ini文件等问题.它似乎不适合.cabal或stack.yaml文件中的任何位置.

为了澄清:在运行堆栈构建/安装之后,具有生成的.exe的文件夹没有资源,因此程序崩溃时会出现一堆IO错误(找不到文件).

haskell haskell-stack

6
推荐指数
1
解决办法
432
查看次数

堆栈梯级的多核并行性

我一直在编写一个脚本,我希望通过交换来mapM利用我机器中的多个处理器Async.mapConcurrently.

在该实例中没有观察到速度增加,我想验证runghc确实可以使用多个核心.

给定一个文件Foo.hs:

import Control.Concurrent

main = print =<< Control.Concurrent.getNumCapabilities
Run Code Online (Sandbox Code Playgroud)

如果我按如下方式编译文件:

stack ghc -- -threaded Foo.hs
Run Code Online (Sandbox Code Playgroud)

然后运行如下:

./Foo
Run Code Online (Sandbox Code Playgroud)

它返回结果1.这是预期的,因为没有提供RTS选项.运行它如下:

./Foo +RTS -N
Run Code Online (Sandbox Code Playgroud)

返回数字6,因为我的机器中有6个处理器(同意nproc).

但是,当我以"解释模式"运行脚本时,如下所示:

GHCRTS="-N" stack runghc Foo.hs
Run Code Online (Sandbox Code Playgroud)

它会产生以下错误文本:

Running /home/kostmo/.stack/programs/x86_64-linux/ghc-nopie-8.0.2/bin/ghc-pkg --no-user-package-db list --global exited with ExitFailure 1

ghc-pkg: the flag -N requires the program to be built with -threaded
Run Code Online (Sandbox Code Playgroud)

是否有可能利用堆栈"脚本"多个核心?

parallel-processing haskell haskell-stack

6
推荐指数
1
解决办法
197
查看次数

堆栈将包保存在缓存中多长时间?

我正在使用精益定理证明器,我想构建类似堆栈的功能并开始构建库缓存.我不确定的一件事是何时删除缓存中的旧包.我可以认为,如果我安装了两个版本的Lean,比如3.3.0和3.3.1,我可以争辩保留所有适用于这些版本的软件包的所有版本.由于精益语法移动速度很快,因此限制性很强.

另一方面,我可以看到只保留任何给定包的10个版本.这可能是10个最新版本或10个最近请求的版本.

我很想知道在构建stack和相关工具中考虑的一些想法.

caching haskell haskell-stack

6
推荐指数
1
解决办法
184
查看次数

如何设置Haskell堆栈以使用系统编译器和库?

更广泛地说,我希望能够将Haskell Stack用作大学班级项目的构建工具。我遇到的主要问题是,当学生尝试使用Haskell堆栈来构建项目时,由于堆栈会在本地安装沙盒GHC编译器和所有库,因此他们很快就会遇到空间配额问题。

我希望能够将标志添加到项目文件中,以便使用系统GHC和库来解决此问题。目前,我们的IT部门正在运行系统GHC部分,但是stack仍在本地安装所有库。

我愿意接受其他解决方案。

haskell haskell-stack

6
推荐指数
0
解决办法
44
查看次数

如何使用 Stack 和 Haskell Test.Framework 运行单个测试?

我正在克隆以下存储库stack.yaml通过在末尾添加对进行一项更改:

docker:
    enable: true
Run Code Online (Sandbox Code Playgroud)

运行haskoin-core我正在使用的所有测试

stack test haskoin-core:test-haskoin-core
Run Code Online (Sandbox Code Playgroud)

我想做的只是运行一个测试。如果是这样的HSpec(这是不是)我会运行类似

stack test --test-arguments -m "Network.Haskoin.Network.Units"
Run Code Online (Sandbox Code Playgroud)

现在我可以做的是修改文件haskcoin-core/test/Main.hs并注释掉所有我不想运行的测试。但是你知道 - 应该有一种更简单的方法来运行它,只使用命令行参数。(改变文件系统会影响 Haskell 的整个功能)。

我也愿意以stack ghci某种方式运行它。

我的问题是:如何使用 Stack 和 Haskell Test.Framework 运行单个测试?

haskell haskell-stack

5
推荐指数
2
解决办法
1268
查看次数