나는 디렉토리 트리에 여러 패키지로 구성된 프로젝트를 가지고있다. 패키지 중 하나를 변경하면 스택은 일반적으로 변경된 패키지에 의존하는 패키지를 자동으로 다시 컴파일합니다 (때로는 자동 실행이 실패하고 나에게 힌트가 없지만 질문의 초점이 아닙니다).extra-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
방법 일반적으로 이전에 컴파일되고 변경되지 않은 여분의 deps의 재사용을 달성하기 위해?
빌드를 시도했는데 --dependencies 만 빌드하고 --snapshot을 빌드했지만 성공하지 못했습니다. 모든 종속성이 다시 빌드됩니다 ... 설명서에서 더 많은 정보를 찾을 수 없습니다.
도움이되는 의견은 질문을 다시 생각하고 수정하게했습니다. 문제가 더 잘 드러나기를 바랍니다. 도와 줘서 고마워!
하나의 프로젝트에 여러 개의 패키지가 있거나 여러 개의 프로젝트 (그리고 여러 개의'stack.yaml')가 있습니까? – sjakobi
아마도'stack.yaml' (s)의 윤곽을 보여줄 것입니다! – sjakobi
stack.yaml이 질문에 편집됩니다. 또한 관련 정보를 찾았지만 https://www.fpcomplete.com/blog/2015/09/stack-more-binary-package-sharing에서 사용하는 방법을 볼 수 없습니다. – user855443