Cabal库与cabal-install.有什么不同?

pio*_*rek 7 haskell cabal cabal-install

当我这样做时,cabal --version我看到:

cabal-install version 0.14.0
using version 1.14.0 of the Cabal library 
Run Code Online (Sandbox Code Playgroud)

那有什么区别?我认为,当我这样做时,cabal build我只使用一个程序.为什么它分成两个不同版本的独立程序?

小智 7

Cabal库定义了如何解析和结构化包描述,并描述了构建和安装包的过程的一部分.该cabal-install包定义了cabal 应用程序.它使用库来有效地理解包描述是什么.

这是软件的通用结构:在库中实现所有纯的和可重用的业务逻辑(Cabal库完成大部分工作,但不是全部,与包描述完全相关的工作),并实现所有用户界面的东西和其他'细节'在使用该库的应用程序中(该cabal-install包定义了CLI工具,并实现了从Hackage中获取包的详细信息).