Biorąc pod uwagę zestaw pakietów cabal, czy istnieje sposób automatycznego obliczania podzbioru niezależnych pakietów? Innymi słowy, podzbiór pakietów, które wystarczą, aby je wszystkie zainstalować.Niezależny podzbiór pakietów cabal set
Dla [network,parsec]
odpowiedź brzmi: [network]
ponieważ jest to network
zależne od .
Dla [network,containers]
odpowiedź jest [network,containers]
ponieważ:
network
nie zależycontainers
- wszystko
network
s zależnościami nie zależycontainers
containers
nie zależynetwork
- wszystkich
containers
s zależności nie zależą odnetwork
Nie jest trudno znaleźć odpowiedź na 2 paczki. Co jest naprawdę interesujące, to znaleźć niezależny zestaw dla [containers, directory, filepath, lens, xml, http-conduit, regex-posix, monad-control, unordered-containers, glib, hashable, hspec, split, aeson, attoparsec, stm, QuickCheck]
.
Od odpowiedzi spodziewam jakąś funkcję na podstawie cabal biblioteki jak ∷ [Packages] → IO [Packages]
.
Wygląda na to, że 'Distribution.Client.PackageIndex.dependencyClosure' jest tym, czego potrzebujesz. –
Masz na myśli ['Distribution.Simple.PackageIndex.dependencyClosure'] (http://hackage.haskell.org/packages/archive/Cabal/latest/doc/html/Distribution-Simple-PackageIndex.html#v:dependencyClosure) ? –
Wersja cabit-install Git ('Distribution.Client. *') Również jest teraz biblioteką. –