标签: cabal-install

为什么HsColour二进制文件的存在/不存在会重新编译QuickCheck库?

假设我没有安装HsColour程序,我安装了QuickCheck

$ cd /tmp/
$ cabal get QuickCheck
$ cd QuickCheck
$ cabal install
...
[ 1 of 15] Compiling Test.QuickCheck.Random 
...
[15 of 15] Compiling Test.QuickCheck
...
Installed QuickCheck-2.7.6
Run Code Online (Sandbox Code Playgroud)

如果我再次安装QuickCheck,则不会重新编译,也就是说,我没有看到这些行

[ 1 of 15] Compiling Test.QuickCheck.Random 
...
[15 of 15] Compiling Test.QuickCheck
Run Code Online (Sandbox Code Playgroud)

但如果我安装HsColour当前版本(1.20.3)并再次安装QuickCheck,则会重新编译QuickCheck.

如果,QuickCheck也会重新编译

  1. 我安装了HsColour,
  2. 我安装了QuickCheck,
  3. 我删除了HsColour二进制文件和
  4. 我安装了QuickCheck.

我用GHC 7.8.3,Cabal 1.20.0.2和cabal-install 1.20.0.3测试了这种行为,以及Cabal和cabal-install的开发版本(使用https://github.com/haskell/cabal/commit/5ef7d84bb25cc5d53ad124978922f2c96bedb7d4) .

haskell quickcheck cabal cabal-install

13
推荐指数
1
解决办法
295
查看次数

使用阴谋时插件包装未知符号

我正在搞乱插件包但是我碰到了一个问题.

这是代码:

UTIL/Header.hs

module Util.Header(PT(..)) where

data PT a = PT a deriving Show
Run Code Online (Sandbox Code Playgroud)

Plug.hs

module Plug(helloPlugin) where
import Util.Header
helloPlugin :: PT Int
helloPlugin = PT 1
Run Code Online (Sandbox Code Playgroud)

Main.hs

module Main where

import Util.Header
import System.Plugins

main :: IO ()
main = do
    mv <- load "Plug.o" ["."] [] "helloPlugin"
    case mv of
        LoadFailure msg -> print msg
        LoadSuccess _ v -> print $ show (v :: PT Int)
Run Code Online (Sandbox Code Playgroud)

这一切都很好,然后用ghc编译.使用Cabal构建工作也很好,但是当我运行可执行文件时,我收到此错误:

plugintest: /home/kevin/.cabal/lib/plugins-1.5.4.0/ghc-7.6.3/HSplugins-1.5.4.0.o: unknown symbol `ghczm7zi6zi3_ErrUtils_zdsinsertzuzdsgo5_info'
plugintest: user error (resolvedObjs failed.) …
Run Code Online (Sandbox Code Playgroud)

plugins haskell ghc cabal cabal-install

11
推荐指数
1
解决办法
442
查看次数

Cabal配置 - "配置"是什么意思?

命令中的"配置"一词涵盖哪些操作cabal configure

我已阅读文档,但我能找到的所有内容基本上都是"配置配置",或者也安装"配置".

谢谢.

haskell cabal haskell-platform cabal-install

11
推荐指数
1
解决办法
953
查看次数

cabal安装`gcc'在'C编译器'阶段失败

我想parsec用于个人项目.但是当我调用时cabal install parsec,我收到一个错误:

clang: error: unknown argument: '-no-pie'
gcc' failed in phase `C Compiler'. (Exit code: 1)
Run Code Online (Sandbox Code Playgroud)

我在OS X El Capitan,10.11.6.如果我已正确理解他上面的错误信息,gcc似乎是原因.当我检查版本时gcc,我明白了

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.0 (clang-700.1.76)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

此外,我在"C编译器"阶段读到了这个`gcc.exe'失败了.(退出代码:1)之后stack setup--reinstall,stack install parsec工作得非常好.但是,总是不会.你能帮助我吗?

gcc haskell cabal-install

11
推荐指数
1
解决办法
2939
查看次数

神秘的cabal-install问题

干净安装"Haskell平台".(OS X Snow-Leopard&Platform 2010.1.0.1),这样做会导致简单的序列导致非常奇怪的cabal install行为:

$ cabal install time

$ cabal install random

$ ghc-pkg list random
/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.1/package.conf.d
   random-1.0.0.2
/Users/yairc/.ghc/i386-darwin-6.12.1/package.conf.d
   random-1.0.0.2
Run Code Online (Sandbox Code Playgroud)

random-1.0.0.2在我的系统中安装了两次.现在每次都要cabal install random重新安装random-1.0.0.2.

看起来random取决于time,并且cabal想要在有新版本time可用之后重新安装它?而且由于两个random-1.0.0.2阴谋混淆并总是认为它不是最新的,因为它正在看第一个?

ghc-pkg check 发现没有错误.

haskell cabal hackage cabal-install

9
推荐指数
2
解决办法
2430
查看次数

Haskell Cabal QuickCheck集成

我一直在尝试使用cabal-install作为一种构建方式,更重要的是,测试我的haskell项目,与Maven在Java项目中使用的方式有点相似,主要是因为它似乎也是一种好方法.集成在Jenkins或ci左右,从某种意义上说它似乎非常可靠,你不需要开发环境等设置来检查和确认代码是否正在编译和纠正.

无论如何,我正在使用QuickCheck和HUnit.在另一篇文章 在这里堆栈交流我发现了一个很好的方式,通过使用功能测试中Distribution.TestSuite.HUnit建立在我的测试模块暴露试验阵列整合HUnit和阴谋.作品.

我尝试使用quickcheck进行相同的设置,

    import qualified Distribution.TestSuite.QuickCheck2 as CabalQuickCheck

    alwaysFalseOneArg::Int->(Int,Int)
    alwaysFalseOneArg x = (x,x)

    quickCheckPropOneArg = \s->let (a,b)=alwaysFalseOneArg s  in a==b && a/=b

    cabalQCTest = CabalQuickCheck.test "test" quickCheckPropOneArg

    tests=cabalQCTest:[]
Run Code Online (Sandbox Code Playgroud)

我想看到这个测试失败了.

我与HUnit设置的cabal文件,HUnit测试正在运行,失败或没有失败,因为他们应该.但是,如果我使用相同的设置来执行quickcheck测试,cabal告诉我它确实找到了一个测试套件,但它没有测试.我尝试了在Distribution.TestSuite.QuickCheck2 网站上提到的方法,但是他们似乎没有提到如何公开测试,我似乎没有设法做到这一点.我现在有点不知所措,我可以用quickcheck本身运行那些quickcheck测试,但不能用cabal运行,我希望能够快速验证我的所有测试和代码并在Jenkins中使用它.有人有想法吗?

我试图提供我认为必要的所有信息,而不会过于复杂的东西,所以我没有发布完整的cabal文件等等,如果有必要,我当然会这样做.我发现了很多类似的帖子,但是大多数都归结为使用了除了详细的0.9之外的其他东西,这可能是一个遗憾,因为它似乎与HUnit作为一个设置很好地工作,我想同时使用HUnit和QuickCheck当然,以同样的方式,最好暴露一个包含HUnit和QuickCheck测试的测试数组.

卡斯帕

haskell cabal-install

9
推荐指数
1
解决办法
1303
查看次数

有没有办法找到为什么cabal安装了某个包?

使用cabal-install安装软件包时,它还会间接安装所有依赖项.鉴于.cabal/packages我没有直接安装的文件夹中的某个包,有没有办法找到其他包的依赖性?

haskell ghc cabal cabal-install ghc-pkg

9
推荐指数
1
解决办法
452
查看次数

无法使用GHC 7.8rc2和Windows 7编译简单的hello世界(或使用cabal安装软件包)

我不能编译一个简单的Hello World或使用时安装有阴谋包安装ghc 7.8,cabal 1.18.1.3cabal-install 1.18.0.2.

cabal install stm从命令提示符执行(或任何其他程序包)时,Windows显示"ghc.exe已停止工作"窗口,输出为:

Reading available packages...
Choosing modular solver.
Resolving dependencies...
Ready to install stm-2.4.2
Extracting
Waiting for install task to finish...
C:\Users\%USER%\AppData\Roaming\cabal\packages\hackage.haskell.org\stm\2.4.2\stm-2.4.2.tar.gz
to C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556...
Updating stm.cabal with the latest revision from the index.
Configuring stm-2.4.2...
creating C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup
creating C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist
creating C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup
"c:\ghc-7.8.0\bin\ghc.exe" "--make" "-odir" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup" "-hidir" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup" "-i" "-iC:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2" "-package-id" "Cabal-1.18.1.3-ac8664a5c71d605f2a4a8e21170969e0" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup\setup.hs" "-o" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup\setup.exe"
Failed to install stm-2.4.2
Last 10 lines of the build log ( C:\Users\%USER%\AppData\Roaming\cabal\logs\stm-2.4.2.log …
Run Code Online (Sandbox Code Playgroud)

windows haskell ghc cabal cabal-install

9
推荐指数
1
解决办法
708
查看次数

Cabal 安装 (Cabal cabal-install) 由于缺少 zlib 库而失败

我想在 Ubuntu 20.04 上安装 Cabal 3.4.0.0。

$ sudo apt install cabal-install
$ cabal --version
cabal-install version 2.4.0.0

$ sudo cabal update
$ sudo cabal install Cabal cabal-install
...
Starting     zlib-0.6.2.3
Failed to install zlib-0.6.2.3
Build log ( /root/.cabal/logs/ghc-8.6.5/zlib-0.6.2.3-93Wbo8gIIzI9bg4p2MsNUF.log ):
cabal: Entering directory '/tmp/cabal-tmp-126381/zlib-0.6.2.3'
Configuring zlib-0.6.2.3...
cabal: Missing dependency on a foreign library:
* Missing (or bad) header file: zlib.h
* Missing (or bad) C library: z
This problem can usually be solved by installing the system package that
provides this …
Run Code Online (Sandbox Code Playgroud)

haskell cabal cabal-install

9
推荐指数
1
解决办法
2357
查看次数

如何实际使用已安装的软件包版本,或找出不可能的原因?

Cabal-newstyle 习惯于偶尔无缘无故地从头开始安装所有依赖项。对于使用其他常见软件包的项目lens,这可能需要长达 \xc2\xbd 小时,这很烦人,尤其是当目的只是快速编译对一个月前构建良好的可执行文件的小更改时。

\n

Cabal 确实提供了指定作为约束的选项,例如lens应该使用已经全局安装的版本。然而,每当我尝试时,我就会得到

\n
$ cabal new-run --constraint \'lens installed\'\nResolving dependencies...\ncabal: Could not resolve dependencies:\n[__0] trying: my-example-project-0.1.0.0 (user goal)\n[__1] next goal: lens (dependency of dat103-Justus-lectures)\n[__1] rejecting: lens-5.2, lens-5.1.1, lens-5.1, lens-5.0.1, lens-5,\nlens-4.19.2, lens-4.19.1, lens-4.19, lens-4.18.1, lens-4.18, lens-4.17.1,\nlens-4.17, lens-4.16.1, lens-4.16, lens-4.15.4, lens-4.15.3, lens-4.15.2,\nlens-4.15.1, lens-4.15, lens-4.14, lens-4.13.2.1, lens-4.13.2, lens-4.13.1,\n...\nlens-0.4, lens-0.3, lens-0.2, lens-0.1 (constraint from command line flag\nrequires installed instance)\n[__1] fail (backjumping, conflict set: my-example-project, lens)\nAfter searching the rest of the dependency tree …
Run Code Online (Sandbox Code Playgroud)

haskell dependency-management cabal cabal-install cabal-new

9
推荐指数
1
解决办法
243
查看次数