标签: haskell-stack

Haskell语言扩展:编译指示与编译器标记?

UnicodeSyntax在项目的所有文件中使用语言扩展名,有两个选项:

  • 每个源文件中都有一个杂注: {-# LANGUAGE UnicodeSyntax #-}
  • 添加文件extensions: UnicodeSyntax的每个部分(库,可执行文件,测试.cabal文件)。

是否有任何理由或最佳做法来选择一个?

我正在使用简单包装stack的标准new-template包装。

haskell haskell-stack

5
推荐指数
1
解决办法
251
查看次数

从堆栈安装ghcjs

我通过堆栈安装stack ghc -- --version了GHC (因此显示GHC-7.10.3)

$ stack install ghcjs

Run from outside a project, using implicit global project config
Using resolver: lts-5.2 from implicit global project's config file: /home/john/.stack/global-project/stack.yaml
The following target packages were not found: ghcjs
Run Code Online (Sandbox Code Playgroud)

一些资源建议ghcjs有点实验性(尽管在后续阶段).


看看http://docs.haskellstack.org/en/stable/ghcjs/我想也许我可以找到stack.yaml并改变它.

要使用堆栈> = 0.1.8的GHCJS,将GHCJS版本放在stack.yaml的编译器字段中......然后 stack setup

$ cat ~/.stack/global-project/stack.yaml
# This is the implicit global project's config file, which is only used when
# 'stack' is run outside of a real project.  Settings here …
Run Code Online (Sandbox Code Playgroud)

haskell ghcjs haskell-stack

5
推荐指数
1
解决办法
1170
查看次数

如何使用堆栈图像容器?

Stack可以构建一个docker容器,使用该stack image container命令在服务器上运行您的应用程序(请参阅下面的参考资料).

如何连接到以这种方式创建的docker容器中的Web服务器?

我已经构建了一个简单的应用来证明这个问题.请在此处查看完整代码:https://github.com/seanhess/haskell-docker-example

这个应用程序是建立在stack new最小的变化.这是Main.hs.

{-# LANGUAGE OverloadedStrings #-}
module Main where

import Network.Wai
import Network.HTTP.Types (status200)
import qualified Network.Wai.Handler.Warp as Warp

main :: IO ()
main = Warp.run 8010 app

app :: Application
app req respond = do
    (putStrLn $ "Request: " ++ (show req))
    (respond $ responseLBS status200 [] "Hello World")
Run Code Online (Sandbox Code Playgroud)

和stack.yaml

resolver: nightly-2016-06-12

image:
  container:
    name: haskell-docker-example
    base: fpco/stack-run
Run Code Online (Sandbox Code Playgroud)

如果您在本地运行它,此应用程序将响应"Hello world".

stack build
stack exec haskell-docker-example
Run Code Online (Sandbox Code Playgroud)

但是如果你构建了docker镜像并启动它:

stack …
Run Code Online (Sandbox Code Playgroud)

haskell docker haskell-stack

5
推荐指数
1
解决办法
1395
查看次数

如何强制堆栈(haskell-stack)从不下载任何内容?

我的工作流程system-ghc: true专门使用。我希望堆栈在任何时候都无法通过它失败,否则它将访问网络以下载任何内容。是否可以配置(全局或每个项目都可以)?

haskell haskell-stack

5
推荐指数
0
解决办法
80
查看次数

如何使用'stack ghci'导入而不是在启动时加载模块?

我有一个名为的haskell包prime-tools.当我stack ghci在包目录中使用时,我希望它能够ghci自动打开一个交互式import prime-tools.相反,我发现它加载了.cabal文件中声明的所有模块.

例如,以下是我的.cabal文件中的摘录,显示了声明了哪些模块:

library
  -- Modules exported by the library.
  exposed-modules:     PrimeTools.MathStuff, PrimeTools.Factors, PrimeTools.PQTrials, PrimeTools.Main, PrimeTools.Base, PrimeTools.Lucas

  -- Modules included in this library but not exported.
  other-modules:       PrimeTools.Extras
Run Code Online (Sandbox Code Playgroud)

这是在项目文件夹中ghci>运行后收到提示时发生的情况stack ghci:

Ok, modules loaded: PrimeTools.MathStuff, PrimeTools.Factors, PrimeTools.PQTrials, PrimeTools.Main, PrimeTools.Base, PrimeTools.Lucas, PrimeTools.Extras.
ghci> 
Run Code Online (Sandbox Code Playgroud)

这个问题加载模块,而不是import prime-tools是,我现在可以使用在所有的模块定义的所有功能,无论他们是否出口.

这种区别引起的问题的一个例子:包prime-tools中有两个模块,它们具有一个被称为函数的实现pfactor.其中一个是导出的,打算由程序包的最终用户使用,而另一个仅供内部使用而不导出.

在有人评论之前,有充分的理由有两个实现pfactor,但它与我的问题无关.


我的问题:如何使用本地版本stack自动启动ghci环境ghc …

haskell ghci haskell-stack

5
推荐指数
1
解决办法
404
查看次数

堆栈安装的LTS版本

是否有一个堆栈命令可以运行以获取我的系统上堆栈安装的所有LTS版本的列表?

haskell package-managers haskell-stack

5
推荐指数
1
解决办法
281
查看次数

使用堆栈的夜间快照时需要使用Cabal 2.0

我正在尝试使用nightly-2017-08-17快照设置一个新项目

stack new test --resolver nightly-2017-08-17
Run Code Online (Sandbox Code Playgroud)

但是,这会产生以下错误:

Downloading template "new-template" to create project "test" in test/ ...
Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- test/test.cabal

Selected resolver: nightly-2017-08-17
Unable to parse cabal file: FromString "This package requires at least Cabal version 2.0" Nothing
Run Code Online (Sandbox Code Playgroud)

Cabal的最新版本:

stack setup --upgrade-cabal
Currently installed Cabal is 2.0.0.2, newest is 2.0.0.2. I'm not upgrading Cabal.
stack will use a sandboxed GHC it installed
For more …
Run Code Online (Sandbox Code Playgroud)

haskell cabal haskell-stack

5
推荐指数
1
解决办法
821
查看次数

如何将缺失字段警告更改为GHC中的错误

我在haskell-stack项目上使用GHC.我想将错误字段提升警告到编译错误.

我尝试执行以下操作,但它不起作用.

{-# OPTIONS_GHC -Werror=missing-fields #-} -- DOESN'T WORK
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何解除丢失的字段警告编译错误吗?

haskell ghc haskell-stack

5
推荐指数
1
解决办法
222
查看次数

Intero:来自堆栈配置的ghc不匹配

intero-mode试图自动安装关于Interotube,它产生以下错误:

Intero is not installed in the Stack environment.

Installing intero-0.1.23 automatically ...


Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for intero-0.1.23:
    ghc-8.2.2 from stack configuration does not match >=7.8 && <8.2.2 (latest matching version
              is 8.2.1)
needed since intero is a build target.

Some potential ways to resolve this:

  * Recommended action: try adding the following to your extra-deps
    in <project directory>\stack.yaml:

- ghc-8.2.1

  * Set 'allow-newer: true' to ignore …
Run Code Online (Sandbox Code Playgroud)

emacs haskell haskell-stack intero

5
推荐指数
1
解决办法
1222
查看次数

在使用GHC进行编译时耗尽内存

我最近将我的应用程序升级到GHC 8.4,并且我正在尝试将应用程序部署到生产环境中.不幸的是,当我尝试在持续集成服务器上编译应用程序时,每次都会耗尽内存.(这个应用程序多年来一直在同一个服务上编译而没有问题.)有没有办法配置GHC/Stack以使编译使用更少的资源?如果它使编译速度变慢也没关系.

对于上下文,这里是编译器崩溃的地方:

Progress 171/271: aeson-1.2.4.0                               aeson-1.2.4.0: copy/register
Progress 171/271: aeson-1.2.4.0                               Progress 172/271

--  While building custom Setup.hs for package Cabal-2.2.0.1 using:
      /root/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.2.0.1 build --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"
    Process exited with code: ExitFailure (-9) (THIS MAY INDICATE OUT OF MEMORY)
Run Code Online (Sandbox Code Playgroud)

ETA:这个问题已被标记为Cabal安装标准内存的重复,但不幸的是,该解决方案对我没有帮助.如果我stack build改为stack build --ghc-options '+RTS -M1500M -RTS',那似乎只会使崩溃稍早发生:

Cabal-2.2.0.1: copy/register
Progress 171/271: Cabal-2.2.0.1                               Progress 172/271

--  While building custom Setup.hs for package tzdata-0.1.20180501.0 using:
      /root/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.2.0.1 build --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"
    Process …
Run Code Online (Sandbox Code Playgroud)

haskell ghc haskell-stack

5
推荐指数
0
解决办法
182
查看次数

标签 统计

haskell ×10

haskell-stack ×10

ghc ×2

cabal ×1

docker ×1

emacs ×1

ghci ×1

ghcjs ×1

intero ×1

package-managers ×1