Интеграция скорости в цепочку инструментов стека
Я использую Haskell Stack для проекта и хочу включить в него Haste, чтобы компилировать логику на стороне клиента. Мне нравится тот факт, что Stack абстрагирует различные проблемы сборки и установки между средами, и если он собирается на моей машине, он будет опираться на чужую.
Как интегрировать Haste в цепочку инструментов Stack? Хорошо работать с единовременной настройкой, но я не хочу пересоздавать всю цепочку инструментов каждый раз, когда код перемещается в новую систему.
1 ответ
Это должно работать, но возьмите это с крошкой соли, поскольку у меня есть дополнительные проблемы из-за этой известной ошибки. Убедитесь, что ваш .cabal
файл имеет правильные зависимости, особенно if impl(haste) ..
часть ( см. это). Похоже, что большинство зависимостей для Haste (и поскольку Haste использует GHC 7.10.3 на сегодняшний день) работают с lts-6.14
так что я использовал это как резольвер.
поспешность-project.cabal
name: haste-project
version: 0.1.0.0
category: Web
build-type: Simple
cabal-version: >=1.10
executable haste-project-exe
hs-source-dirs: app
main-is: Main.hs
build-depends: base >= 4.8 && < 4.9
if impl(haste)
build-depends: haste-lib >= 0.5 && < 0.6
else
build-depends: haste-compiler >= 0.5 && < 0.6
default-language: Haskell2010
stack.yaml
extra-deps:
- HTTP-4000.2.23
- ghc-simple-0.3
- haste-compiler-0.5.4.2
- shellmate-0.2.3
resolver: lts-6.14
Затем из того же каталога вы можете перейти к обычным инструкциям по настройке для Haste, но с дополнениями стека команд Cabal:
$ stack build
$ stack install haste-compiler # installs haste-boot, haste-cat, haste-pkg, and hastec
$ stack exec haste-boot # setup Haste (where I get the bug I mentioned above)
Затем вы сможете запускать все обычные команды, но с префиксом stack exec --
, Например
$ stack exec -- hastec -O2 -fglasgow-exts myprog.hs