J'étais développeur Java depuis longtemps, mais récemment, j'ai rejoint une équipe Haskell. Dans le monde java, si vous avez un grand projet, avec plusieurs équipes qui y travaillent, une approche courante consiste à utiliser un serveur d'artefacts tel que Maven pour faciliter et accélérer le développement. De nombreux outils de génération, tels que Ant, Maven, Gradle, peuvent générer le projet et télécharger un fichier jar sur le serveur d'artefacts qui peut être utilisé par le reste de l'équipe sans douleur. Par conséquent, en divisant le projet en sous-projets plus petits, le temps de construction est également considérablement réduit.
Du côté de Haskell, nous utilisons cabal
pour construire le projet. Notre projet prend environ 10-15 minutes à construire sans optimisation. Cela prend quelques heures si l'optimisation du compilateur est activée, ce qui est pénible.
Je me demande comment nous pouvons faire la même chose que nous faisons ici en Java. Existe-t-il un moyen facile de compiler et de télécharger le binaire des packages (bibliothèques) sur un serveur d'artefacts et d'utiliser les binaires précompilés au moment de la construction? Je sais que puisque Haskell génère du code machine (plutôt que du code octet en Java), il peut y avoir des problèmes de compatibilité, mais nous pouvons probablement avoir différents binaires pour différentes architectures / OS stockés sur le serveur d'artefacts.
cabal
, GHC
, Test.Framework
ou l'éditeur de liens.