标签: haskell-stack

如果只使用堆栈,如何取消隐藏包?

我想试试Writerghci中的monad.正如这里所建议的,我试图只使用堆栈来管理GHC和包,并避免全局安装.

从一个全新的Ubuntu 15.04安装,安装堆栈后:

stack setup
mkdir lyah && cd lyah
stack new
stack install mtl
stack ghci
ghci> import Control.Monad.Writer
Could not find module ‘Control.Monad.Writer’
It is a member of the hidden package ‘mtl-2.1.3.1’.
Run Code Online (Sandbox Code Playgroud)

我知道pre-stack ghc-pkg用于显示/隐藏包,但我不知道如何继续"取消隐藏"mtl包.

haskell haskell-stack

6
推荐指数
1
解决办法
2660
查看次数

如何使Stack只构建一个可执行文件?堆栈构建:exe1不起作用?

我的一个Stack项目中有多个可执行文件:

executable m1
  hs-source-dirs:      src
  main-is:             Main1.hs
  default-language:    Haskell2010
  build-depends:       base >= 4.7 && < 5

executable m2
  hs-source-dirs:      src
  main-is:             Main2.hs
  default-language:    Haskell2010
  build-depends:       base >= 4.7 && < 5
Run Code Online (Sandbox Code Playgroud)

我想一次只建一个.从文档其他问题,似乎以下命令应该工作:

stack build :m2
Run Code Online (Sandbox Code Playgroud)

实际发生的是,无论是否包含包名,包类型等,都可以构建可执行文件m1和m2.

可能是什么导致了这个?

haskell haskell-stack

6
推荐指数
1
解决办法
257
查看次数

使用postgresql-simple创建数据库连接时的GHCI Segfault

尝试使用postgresql-simple在GHCI中创建数据库连接时,我得到GHCI段错误.

我使用的是GHC 8.0.1,OSX 10.11.16.我没有系统GHC,只有堆栈安装的系统.

如果我在我的项目中执行以下操作,则会出现以下错误:

$ stack ghci
Loaded GHCi configuration from /private/var/folders/wb/vvtxjd7n2qz02f571yjyr9j40000gs/T/ghci62972/ghci-script
gchi> :set -XOverloadedStrings
gchi> import Database.PostgreSQL.Simple
gchi> let connstr = "host=localhost port=5432 user=myusername password=mypass dbname=local"
gchi> conn <- connectPostgreSQL connstr
zsh: segmentation fault  stack ghci
Run Code Online (Sandbox Code Playgroud)

我认为它可能值得查看它提到的文件,所以这里有以下内容:

> cat /private/var/folders/wb/vvtxjd7n2qz02f571yjyr9j40000gs/T/ghci62972/ghci-script
:load "/Users/erewok/projects/haskell/simpleservantblog/app/Main.hs" "Api" "Api.Post" "Api.User" "Config" "Html.Home" "Models.Author" "Models.Post"
:module + Api Api.Post Api.User Config Html.Home Models.Author Models.Post
Run Code Online (Sandbox Code Playgroud)

它是从项目加载的所有模块的列表(编译并运行正常).


这是从启动ghci到seg故障的所有内容的完整输出:

$ stack ghci
The following GHC options are incompatible with GHCi and have not been passed …
Run Code Online (Sandbox Code Playgroud)

haskell ghci haskell-stack

6
推荐指数
1
解决办法
191
查看次数

如何使用Stack在OS X上创建静态可执行文件?

我想为Darwin创建一个静态可执行文件,用于一个我编写的名为difftodo的小型实用程序。difftodo间接取决于pcre,我希望人们能够下载二进制文件并运行它而不必先执行brew install pcre

如果我不使用选项进行编译,则会得到一个可动态链接pcre的二进制文件:

$ otool -L /Users/jml/src/difftodo/.stack-work/install/x86_64-osx/lts-7.1/8.0.1/bin/git-todo
/Users/jml/src/difftodo/.stack-work/install/x86_64-osx/lts-7.1/8.0.1/bin/git-todo:
        /usr/local/opt/pcre/lib/libpcre.1.dylib (compatibility version 4.0.0, current version 4.7.0)
        /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
Run Code Online (Sandbox Code Playgroud)

按照https://github.com/commercialhaskell/stack/issues/1032上的说明,我尝试了以下操作:

$ stack build --ghc-options -static --ghc-options -optl-static
difftodo-0.2.0: configure
Configuring difftodo-0.2.0...
difftodo-0.2.0: build
Preprocessing library difftodo-0.2.0...
ld: illegal text reloc in '_c1TGM_info' to '_stg_sel_1_upd_info' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
`gcc' failed …
Run Code Online (Sandbox Code Playgroud)

macos haskell-stack

6
推荐指数
0
解决办法
324
查看次数

Haskell堆栈本地服务器

我在防火墙后面有关于从互联网下载软件的严格规则,所以我想知道是否可以一次下载整个堆栈LTS快照并在本地服务器上提供服务,然后我们可以指向堆栈工具.

通过"快照",我将指代所有包的源代码,因为理想情况下我们需要从该本地服务器绘制以构建多个(堆栈支持的)平台(Linux,Windows).

例如,能够转到防火墙内的新机器,然后运行"stack new",然后编辑yaml文件以将其指向具有给定解析器编号的本地堆栈服务器,那么它会表现得很好通常从那时起,除了总是从本地服务器下载包.

编译器怎么样?我知道堆栈也下载了编译器,所以我想这些必须包含在下载的各种平台的快照包中吗?

谢谢

haskell stackage haskell-stack

6
推荐指数
0
解决办法
198
查看次数

在cifs目录中的`stack build`期间,'cabal copy'失败了

我正在遵循这些指示.我成功了stack new,stack setupstack build失败了.

我发现一个git问题,这可能是由于cabal文件中列出的额外文件,但删除它们并没有解决问题(我只是使用new-template没有任何更改).我在Ubuntu 14.04上并使用脚本安装了堆栈.还有什么我可以研究一下吗?

看来这可能是由于我试图在cifs目录中构建.我能做些什么来处理这件事吗?

# stack build
ehri-haskell-0.1.0.0: configure (lib + exe)
Configuring ehri-haskell-0.1.0.0...
ehri-haskell-0.1.0.0: build (lib + exe)
Preprocessing library ehri-haskell-0.1.0.0...
Preprocessing executable 'ehri-haskell-exe' for ehri-haskell-0.1.0.0...
ehri-haskell-0.1.0.0: copy/register
Installing library in
/mnt/docs/RubymineProjects/ehri-haskell/.stack-work/install/x86_64-linux/lts-8.6/8.0.2/lib/x86_64-linux-ghc-8.0.2/ehri-haskell-0.1.0.0-Kh3VLZPfbij7EgcL22QBMN
Installing executable(s) in
/mnt/docs/RubymineProjects/ehri-haskell/.stack-work/install/x86_64-linux/lts-8.6/8.0.2/bin
/mnt/docs/RubymineProjects/ehri-haskell/.stack-work/install/x86_64-linux/lts-8.6/8.0.2/bin/.copyFile5965166491189641421.tmp:
copyFile: does not exist (Host is down)
'cabal copy' failed.  Error message:

--  While building package ehri-haskell-0.1.0.0 using:
      /root/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-work/dist/x86_64-linux/Cabal-1.24.2.0 copy
    Process exited with code: ExitFailure 1 …
Run Code Online (Sandbox Code Playgroud)

haskell nfs cifs haskell-stack

6
推荐指数
1
解决办法
337
查看次数

堆栈将包保存在缓存中多长时间?

我正在使用精益定理证明器,我想构建类似堆栈的功能并开始构建库缓存.我不确定的一件事是何时删除缓存中的旧包.我可以认为,如果我安装了两个版本的Lean,比如3.3.0和3.3.1,我可以争辩保留所有适用于这些版本的软件包的所有版本.由于精益语法移动速度很快,因此限制性很强.

另一方面,我可以看到只保留任何给定包的10个版本.这可能是10个最新版本或10个最近请求的版本.

我很想知道在构建stack和相关工具中考虑的一些想法.

caching haskell haskell-stack

6
推荐指数
1
解决办法
184
查看次数

有没有办法在使用堆栈构建时在powershell终端上正确格式化GHC错误消息?

使用ghc构建在powershell上打印格式错误的错误消息(如在其他终端中):

PS > ghc .\src\XXX.hs -package ghc -package ghc-paths -package filepath

[1 of 1] Compiling XXX           ( src\XXX.hs, src\XXX.o )

src\XXX.hs:340:9: error:
    parse error on input `<-'
    Perhaps this statement should be within a 'do' block?
    |
340 |   blah  <- blah blah blah
    |         ^^
Run Code Online (Sandbox Code Playgroud)

但是当通过堆栈构建时,出现了问题:

PS > stack build
XXX-0.1.0.0: build (lib + exe)
Preprocessing library for XXX-0.1.0.0..
Building library for XXX-0.1.0.0..
[2 of 3] Compiling XXX ( src\XXX.hs, .stack-work\dist\5c8418a7\build\XXX.o )

?[;1msrc\XXX.hs:340:9: ?[;1m?[31merror:?[0m?[0m?[;1m?[0m?[0m?[;1m
    parse error on input `<-' …
Run Code Online (Sandbox Code Playgroud)

windows powershell haskell ghc haskell-stack

6
推荐指数
1
解决办法
84
查看次数

在Haskell中使用分析运行堆栈

我尝试跑步

$ stack build --profile && stack run myexec --rts-options -p
Run Code Online (Sandbox Code Playgroud)

但是我明白了

... 
Registering library for mylibrary-0.1.0.1..
Completed 2 action(s).      
myexec: the flag -p requires the program to be built with -prof
...
Run Code Online (Sandbox Code Playgroud)

我知道我可以跑步

$ .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/myexe/myexe +RTS -p
Run Code Online (Sandbox Code Playgroud)

但是那有什么意义stack run呢?我不想知道cabal的版本和体系结构等(所有这些都发生在makefile中)。

haskell haskell-stack

6
推荐指数
1
解决办法
69
查看次数

如何设置Haskell堆栈以使用系统编译器和库?

更广泛地说,我希望能够将Haskell Stack用作大学班级项目的构建工具。我遇到的主要问题是,当学生尝试使用Haskell堆栈来构建项目时,由于堆栈会在本地安装沙盒GHC编译器和所有库,因此他们很快就会遇到空间配额问题。

我希望能够将标志添加到项目文件中,以便使用系统GHC和库来解决此问题。目前,我们的IT部门正在运行系统GHC部分,但是stack仍在本地安装所有库。

我愿意接受其他解决方案。

haskell haskell-stack

6
推荐指数
0
解决办法
44
查看次数

标签 统计

haskell-stack ×10

haskell ×9

caching ×1

cifs ×1

ghc ×1

ghci ×1

macos ×1

nfs ×1

powershell ×1

stackage ×1

windows ×1