首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阴谋集团对runhaskell,什么时候使用?

阴谋集团对runhaskell,什么时候使用?
EN

Stack Overflow用户
提问于 2015-04-18 13:36:39
回答 2查看 1.2K关注 0票数 4

在haskell构建系统中,Cabalrunhaskell拥有几乎相同的一组子命令,即configurebuild。对于runhaskell来说,它是:

代码语言:javascript
复制
runhaskell Setup.hs configure
runhaskell Setup.hs build

阴谋集团的...whereas是:

代码语言:javascript
复制
cabal build
cabal configure

那么,我什么时候应该使用哪个命令呢?这两个命令具有相同的功能吗?

我可以在没有sudo访问的情况下运行runhaskell,因为我看到runhaskell/opt/ghc/7.8.4/lib中生成条目,而阴谋在sudo/non模式下工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-18 13:40:53

cabalrunhaskell的用途完全不同。runhaskell用于执行Haskell程序,而不需要编译它们。您可以将它放在Haskell文件的顶部:#!/usr/bin/env runhaskell,并赋予它脚本能力。cabal是Haskell的包管理器和构建系统。

另外,cabalrunhaskell不共享它们的子命令,如configurebuildinstall等。

我在这个链接中看到了bob.ippoli.to/archives/2013/01/11/getting-started-with-haskell,使用的两个命令..。运行Setup.hs配置& runhaskell Setup.hs构建

通常,Setup.hs在从cabal init生成时有以下代码

代码语言:javascript
复制
import Distribution.Simple
main = defaultMain

现在,如果您看到defaultMain的实现

代码语言:javascript
复制
defaultMain :: IO ()
defaultMain = getArgs >>= defaultMainHelper simpleUserHooks

因此,您要传递的实际上是命令行参数,它可以是任何内容。事实上,你可以自己测试:

代码语言:javascript
复制
$ runhaskell Setup.hs invalid_argument
unrecognised command: invalid_argument (try --help)
票数 6
EN

Stack Overflow用户

发布于 2015-04-18 13:41:19

runhaskell没有任何子命令:

$ runhaskell -救命 用法: runghc runghc标志模块程序args

它获取到Haskell源文件的路径并立即执行它。所以,当您只想运行一些Haskell代码时,就应该使用它。当然,您可以在没有超级用户访问的情况下使用runhaskell;我怀疑它会在/opt中创建任何东西。

阴谋集团是Haskell项目的构建系统,其目的是将Haskell源转换为二进制文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29718123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档