独立的cabal包子集

ДМИ*_*КОВ 48 haskell cabal

给定一组cabal包,有没有办法自动计算独立包的子集?换句话说,将足以安装所有包的子集.

对于[network,parsec]答案是[network],因为它network依赖parsec.

对于[network,containers]答案是[network,containers]因为:

  • network 不依赖 containers
  • 所有network的依赖都不依赖于containers
  • containers 不依赖 network
  • 所有containers的依赖都不依赖于network

找到2个包的答案并不难.真正有趣的是找出独立的设置[containers, directory, filepath, lens, xml, http-conduit, regex-posix, monad-control, unordered-containers, glib, hashable, hspec, split, aeson, attoparsec, stm, QuickCheck].


从答案我期望一些基于cabal库的功能? [Packages] ? IO [Packages].

mca*_*dre 1

Cabal 正在转向更像 NPM 的模型,这将使​​依赖关系解析变得更加简单。每个已安装的软件包都将保留其依赖项的本地副本,用一点磁盘空间来解决安装具有互斥软件包版本控制要求的多个全局软件包的麻烦。

在此模型下,安装一组软件包所需的软件包子集==。尽管一个可能是另一个的依赖项,但每个安装的副本都会保留其依赖项的本地副本,因此 Cabal 不会再考虑以这种方式安装的依赖项。