48 votes

Sous-ensemble indépendant de l'ensemble des paquets de la cabale

Étant donné un ensemble de paquets cabal, existe-t-il un moyen de calculer automatiquement un sous-ensemble de paquets indépendants ? En d'autres termes, le sous-ensemble de paquets qui sera suffisant pour les installer tous.

Pour [network,parsec] la réponse est [network] parce qu'il network dépend de parsec .

Pour [network,containers] la réponse est [network,containers] parce que :

  • network ne dépend pas de containers
  • tous network ne dépend pas de containers
  • containers ne dépend pas de network
  • tous containers ne dépend pas de network

Il n'est pas difficile de trouver la réponse pour 2 paquets. Ce qui est vraiment intéressant, c'est de trouver l'ensemble indépendant pour [containers, directory, filepath, lens, xml, http-conduit, regex-posix, monad-control, unordered-containers, glib, hashable, hspec, split, aeson, attoparsec, stm, QuickCheck] .


A partir de la réponse, je m'attends à une fonction basée sur la bibliothèque cabale comme [Packages] IO [Packages] .

1voto

mcandre Points 6965

Cabal s'oriente vers un modèle plus proche de NPM, ce qui rendra la résolution des dépendances beaucoup plus simple. Chaque paquet installé conservera une copie locale de ses dépendances, échangeant un peu d'espace disque contre le casse-tête de l'installation de plusieurs paquets globaux avec des demandes de versionnement de paquet mutuellement exclusives.

Selon ce modèle, le sous-ensemble de paquets requis pour installer un ensemble de paquets == cet ensemble. Bien que l'un puisse être une dépendance de l'autre, chaque copie installée conservera sa propre copie locale de ses dépendances, donc Cabal ne considérera plus la dépendance installée de cette façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X