Как кэшировать зависимость Haskell для ускорения времени компиляции? - PullRequest
0 голосов
/ 24 января 2019

Проблема: Я работаю над проектом на Haskell, который использует стек (+ nix). У нас есть зависимость, которая занимает более 10 минут для компиляции. Каждый раз, когда мы очищаем наш .stack-work, нам приходится ждать компиляции этого огромного пакета, и это действительно снижает эффективность нашего проекта. Имя пакета godot-haskell, и вот как зависит пакет в нашем stack.yaml:

extra-deps:
- godot-haskell-0.1.0.0@sha256:9d92ff27c7b6c6d2155286f04ba2c432f96460f448fd976654ef26a84f0e35a6,26290

Вопрос: Есть ли способ для нас каким-то образом кэшировать этот пакет (в стеке или даже в nix), чтобы он никогда не должен был компилироваться локально (или должен компилироваться не более одного раза), даже если каталог .stack-work удален)?

1 Ответ

0 голосов
/ 24 января 2019

Для текущего выпущенного стека лучший способ добиться этого - поместить extra-dep в пользовательский файл снимка вместо extra-deps в файле stack.yaml.(В следующем выпуске Stack есть функция, называемая «неявными снимками», которая обходит это.) Пример этого можно увидеть в самом репозитории Stack:

...