haskell - 将 Haste 集成到 Stack 工具链中

标签 haskell haskell-stack haste

我正在使用Haskell Stack对于一个项目,我想包括 Haste它编译客户端逻辑。我喜欢这样一个事实:Stack 抽象了环境中不同的构建和安装问题,如果它在我的机器上构建,它也会在其他人的机器上构建。

如何将 Haste 集成到 Stack 工具链中?进行一次性设置很好,但我不想每次代码移动到新系统时都必须重新创建整个工具链。

最佳答案

这应该可行,但请持保留态度,因为我遇到了由于 this 带来的额外问题已知错误。确保您的.cabal文件具有正确的依赖关系,尤其是 if impl(haste) ..部分(see this)。似乎 Haste 的大多数依赖项(并且自今天起 Haste 使用 GHC 7.10.3)都可以与 lts-6.14 一起使用。 ,所以我用它作为解析器。

haste-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

然后,从同一目录,您现在可以继续执行 usual setup instructions for Haste ,但 Stack 是 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

关于haskell - 将 Haste 集成到 Stack 工具链中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39090396/

相关文章:

haskell - 我应该如何在应用程序中使用所有组合

haskell - 我可以知道一个程序是用哪个 ghc 版本构建的吗?

haskell - 使用 postgresql-simple 创建流式管道源

haskell-stack - 如何预安装堆栈依赖项,以减少堆栈构建时间?

haskell - 为什么 "Níðhöggr"的长度是9?

haskell - 如何使 Stack 只构建一个可执行文件?堆栈构建 :exe1 doesn't work?

haskell-stack - 编译错误building intero

haskell - "Too much recursion"基本急速使用错误

haskell - 如何在堆栈中使用 haste/hplayground

javascript - Haste Haskell->JS 编译器无法在 OSX 上运行,调用 hastec 时显示特定错误消息