Stack — это инструмент для создания проектов Haskell и управления их зависимостями. Он использует библиотеку Cabal , но с курируемой версией репозитория Hackage под названием Stackage . [3] [4]
Stack конкурирует с бинарной программой Cabal-install [5] компании Cabal и был создан в результате общей критики проблем зависимостей. [6] Однако он не предоставляет собственный формат пакета , а использует существующие *.cabal
файлы и дополняет проекты дополнительным stack.yaml
файлом.
Эта запись в блоге призвана ответить на два очень частых
вопроса
о стеке: чем он отличается от Cabal? И: Почему он был разработан как отдельный проект, а не над которым работали вместе с Кабалом?
Управление пакетами с помощью Cabal — худший аспект использования Haskell. На вопрос, повлияют ли улучшения в управлении пакетами на их будущий выбор Haskell для проекта, 38% ответили, что это будет «решающе важно», а еще 29% ответили, что это будет «важно». Комментарии связывали клику со словами «ад», «боль», «ужасно», «отстой», «разочаровывающе» и «ужасно». Только эта тема вызвала такое серьезное недовольство.