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

标签 haskell caching haskell-stack

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

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

我很想知道在 build 中考虑的一些想法stack和相关工具。

最佳答案

stack将包永久保存在缓存中。或者直到您手动删除这些包。 stack 中没有实现快照垃圾收集.所以你唯一能做的就是手动调用

rm -rf ~/.stack

删除 整体堆栈缓存。通常,定期执行此操作以删除在一段时间内累积的过时软件包是一种很好的做法。但一定要备份.stack/global-project/stack.yaml如果您手动更改它。
stack为您处理缓存删除的命令正在开发中:

https://github.com/commercialhaskell/stack/issues/133

关于haskell - 堆栈将包保存在其缓存中多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46980225/

相关文章:

haskell - 比较两个字符串列表并删除部分匹配项

haskell - EitherT 的惯用用法和错误

haskell - 如何将 traverse 与 exceptT 和 List 一起使用,以便仅当所有项目都为 Left 时才返回 Left?

c# - 缓存 - IDictionary 与顶级键前缀

haskell - 无法向 Stack 项目添加额外的 deps

haskell - 即使 DeriveGeneric 打开,派生 Generic 也不起作用

haskell - 如何为返回幻像类型的幻像类型创建实例?

java - java中的内存缓存对象

php - 手动将mysql查询结果缓存到txt文件

haskell - 如何在 Haskell 项目中使用 DLL?