【发布时间】:2014-11-02 22:34:12
【问题描述】:
当我做cabal --version 时,我看到了:
cabal-install version 0.14.0
using version 1.14.0 of the Cabal library
那有什么区别呢?我以为当我做cabal build 时,我只使用一个程序。为什么要拆分成两个不同版本的独立程序?
【问题讨论】:
标签: haskell cabal cabal-install
当我做cabal --version 时,我看到了:
cabal-install version 0.14.0
using version 1.14.0 of the Cabal library
那有什么区别呢?我以为当我做cabal build 时,我只使用一个程序。为什么要拆分成两个不同版本的独立程序?
【问题讨论】:
标签: haskell cabal cabal-install
Cabal 库定义了包描述的解析和结构化方式,并描述了构建和安装包的部分过程。 cabal-install 包定义了cabal 应用程序。它使用库来有效地理解包描述是什么。
这是软件的常见结构:在一个库中实现所有纯且可重用的业务逻辑(Cabal 库完成大部分但不是全部与包描述相关的工作),并实现所有用户使用该库的应用程序中的接口内容和其他“详细信息”(cabal-install 包定义了 CLI 工具,并实现了从 Hackage 获取包的详细信息)。
【讨论】: