2017-03-23 9 views
1

私はディレクトリツリーにいくつかのパッケージからなるプロジェクトを持っています。私がパッケージの1つを変更すると、スタックは通常、変更されたパッケージに依存するパッケージを自動的に再コンパイルします(時には自動化に失敗し、ヒントがありませんが、これは問題の焦点では​​ありません)。extra-depsでのパッケージの繰り返しコンパイルを避ける方法

再コンパイル中に、私は多くの場合、余分なdepsとして記載されているすべてのパッケージの再コンパイルを参照してください。これらは変更されておらず、再コンパイルは不要です(しかし時間がかかります)。そのような依存関係を(変更されていない限り)一度だけコンパイルして再利用するためのメカニズムがあることを理解します。私は一度、スタックからのメッセージを見ました。以前のパッケージのコンパイルがこのキャッシュを指して再利用されたと言っていました。

私は(私は

- location: /home/frank/Workspace8/repo8/litMain 
    extra-dep: true 

のようなエントリでも試してみましたが、違いを見ていない)プロジェクトディレクトリに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 

方法以前に編集されたもので変更されたものではない一般的なものの再利用を達成するために?

ビルド、ビルド - 依存性のみ、ビルド - スナップショットは成功しませんでした。すべての依存関係が再構築されています...ドキュメントでさらに情報が見つかりませんでした。

私はこの質問を再考して編集しました。私は問題が今より良くなることを願っています。ご協力ありがとうございます!

+0

1つのプロジェクトに複数のパッケージがありますか、複数のプロジェクト(複数の 'stack.yaml')がありますか? – sjakobi

+0

あなたの 'stack.yaml'(s)の概要を教えてください。 – sjakobi

+0

stack.yamlが質問に編集されます。私はおそらく関連する情報も見つけましたが、https://www.fpcomplete.com/blog/2015/09/stack-more-binary-package-sharingでの使用方法はわかりません。 – user855443

答えて

0

ローカルパッケージの変更により、追加パッケージがローカルパッケージに依存しない限り、任意のエクステンションを再コンパイルする必要はありません。 (ローカルパッケージは、extra-depsセクションに記載されているパッケージです)

通常、私の追加のdepsは、スタックをアップグレードするか、resolverを変更すると再コンパイルされます。

これはスタックの動作にバグがある可能性があることを示しています。次回この冗長再コンパイルを再度表示したときにスタックのバグレポートを作成することができれば素晴らしいでしょう。

関連する問題