Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell stack 如何避免在额外的DEP中重复编译包_Haskell Stack - Fatal编程技术网

Haskell stack 如何避免在额外的DEP中重复编译包

Haskell stack 如何避免在额外的DEP中重复编译包,haskell-stack,Haskell Stack,我有一个由目录树中的几个包组成的项目。如果我更改了其中一个包,那么stack通常会自动重新编译依赖于更改后的包的包(有时自动操作失败,我没有提示何时进行,但这不是问题的重点) 在重新编译期间,我经常看到所有列为额外dep的包被重新编译。这些都没有改变,重新编译是不必要的(但很耗时)。我知道有某种机制可以只编译一次这样的依赖项(只要它们不改变)并重用。有一次,我看到一条来自堆栈的消息,说以前的一些包编译被重用,指向这个缓存 在一篇评论中,我被要求在项目目录中提供stack.yaml(我也尝试使用类

我有一个由目录树中的几个包组成的项目。如果我更改了其中一个包,那么stack通常会自动重新编译依赖于更改后的包的包(有时自动操作失败,我没有提示何时进行,但这不是问题的重点)

在重新编译期间,我经常看到所有列为额外dep的包被重新编译。这些都没有改变,重新编译是不必要的(但很耗时)。我知道有某种机制可以只编译一次这样的依赖项(只要它们不改变)并重用。有一次,我看到一条来自堆栈的消息,说以前的一些包编译被重用,指向这个缓存

在一篇评论中,我被要求在项目目录中提供stack.yaml(我也尝试使用类似的条目)

- location: /home/frank/Workspace8/repo8/litMain
  extra-dep: true
但没有看到区别):

一般来说,如何实现以前编译的、未更改的额外DEP的重用

我尝试了构建、构建——仅依赖项和构建——快照,但没有成功。所有依赖项都将重建。。。我在文档中找不到更多信息


有用的评论让我重新思考并编辑了这个问题。我希望问题现在能更好地暴露出来。谢谢你的帮助

您是对的,本地包中的更改不应导致重新编译任何额外的DEP,只要这些额外的DEP不依赖于任何本地包。(本地软件包是在
extra deps
部分中列出的软件包。)

通常,只有在升级堆栈或更改
解析器时,才会重新编译额外的dep


这表明堆栈的行为中可能有一个bug,所以如果您下次再次看到这个冗余的重新编译时能够为堆栈生成bug报告,那就太好了

您是对的,本地包中的更改不应导致重新编译任何额外的DEP,只要这些额外的DEP不依赖于任何本地包。(本地软件包是在
extra deps
部分中列出的软件包。)

通常,只有在升级堆栈或更改
解析器时,才会重新编译额外的dep


这表明堆栈的行为中可能有一个bug,所以如果您下次再次看到这个冗余的重新编译时能够为堆栈生成bug报告,那就太好了

您是在一个项目中有多个包,还是有多个项目(和多个
stack.yaml
s)?也许可以向我们展示您的
stack.yaml
(s)的概要?!stack.yaml被编辑到问题中。我还找到了可能相关的信息,但我看不出如何在中使用,我仍然发现很难按照您的问题描述进行操作。您的一句话“如果我更改了其中一个项目,那么堆栈不会自动更新依赖于此项目的另一个项目。”表示有多个项目,但实际上只有一个?也许您可以并包括重现问题所需的所有步骤。您是在一个项目中有多个包,还是有多个项目(和多个
stack.yaml
s)?也许可以向我们展示您的
stack.yaml
(s)的概要?!stack.yaml被编辑到问题中。我还找到了可能相关的信息,但我看不出如何在中使用,我仍然发现很难按照您的问题描述进行操作。您的一句话“如果我更改了其中一个项目,那么堆栈不会自动更新依赖于此项目的另一个项目。”表示有多个项目,但实际上只有一个?也许你可以包括所有必要的步骤来重现你的问题。
flags: {}
extra-package-dbs: []
packages:
- litMain      
- rdf4store    
- rdfhextension    
- uniform/uniform-strings    
- uniform/uniform-error     
- uniform/uniform-algebras      
- uniform/uniform-convenience       
- uniform/uniform-fileio       
- uniform/uniform-time       
extra-deps:
- chatter-0.8.0.1
- data-easy-0.7.0
- fullstop-0.1.4
- hgal-2.0.0.2
- non-negative-0.1.1
- numeric-prelude-0.4.2
- rdf4h-3.0.1
- test-invariant-0.4.5.0
- tokenize-0.3.0
resolver: lts-8.2