У меня есть проект, состоящий из нескольких пакетов в дереве каталогов. Если я изменяю один из пакетов, то стек обычно автоматически перекомпилирует пакеты, которые зависят от измененного (иногда автоматизм дает сбой, и я не знаю, когда, но это не является предметом вопроса).
во время перекомпиляции я часто вижу перекомпиляцию всех пакетов, перечисленных как дополнительные пакеты. они не изменились, и перекомпиляция не требуется (но занимает много времени). Я понимаю, что есть какой-то механизм для компиляции таких зависимостей только один раз (пока они не меняются) и для повторного использования. Однажды я увидел сообщение из стека о том, что какая-то предыдущая компиляция пакета была повторно использована, что указывает на это кэширование.
меня попросили в комментарии предоставить stack.yaml в каталоге проекта (я пробовал также с такими записями, как
- location: /home/frank/Workspace8/repo8/litMain
extra-dep: true
но разницы не увидел)
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
Как вообще добиться повторного использования ранее скомпилированных и не измененных экстра-депов?
Я пробовал строить, строить --dependencies-only и строить --snapshot, но безуспешно. Все зависимости перестроены... я не смог найти больше информации в документации.
Полезные комментарии заставили меня переосмыслить и отредактировать вопрос. Я надеюсь, что проблема теперь лучше раскрыта. Спасибо за помощь!
stack.yaml
)? - person sjakobi   schedule 23.03.2017stack.yaml
(ов)?! - person sjakobi   schedule 23.03.2017