Интеграция скорости в цепочку инструментов стека

Я использую 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
Другие вопросы по тегам