Ich war lange Zeit Java-Entwickler, bin aber kürzlich einem Haskell-Team beigetreten. Wenn Sie in der Java-Welt ein großes Projekt haben, an dem mehrere Teams arbeiten, besteht ein gängiger Ansatz darin, einen Artefaktserver wie Maven zu verwenden, um die Entwicklung zu vereinfachen und zu beschleunigen. Zahlreiche Build-Tools wie Ant, Maven, Gradle können das Projekt erstellen und eine JAR-Datei auf den Artefaktserver hochladen, die vom Rest des Teams problemlos verwendet werden kann. Durch die Aufteilung des Projekts in kleinere Unterprojekte wird daher auch die Erstellungszeit drastisch reduziert.
Auf der Haskell-Seite verwenden wir cabal
, um das Projekt zu erstellen. Unser Projekt dauert ca. 10-15 Minuten, ohne dass eine Optimierung erforderlich ist. Es dauert einige Stunden, bis die Compileroptimierung aktiviert ist, was schmerzhaft ist.
Ich frage mich, wie wir das gleiche tun können wie in Java hier. Gibt es eine einfache Möglichkeit, die Binärdatei der Pakete (Bibliotheken) zu kompilieren und auf einen Artefaktserver hochzuladen und die vorgefertigten Binärdateien zum Zeitpunkt der Erstellung zu verwenden? Ich weiß, dass es Kompatibilitätsprobleme geben kann, da Haskell Maschinencode generiert (und nicht Bytecode in Java), aber wir können wahrscheinlich verschiedene Binärdateien für verschiedene Architekturen / Betriebssysteme auf dem Artefaktserver speichern.
cabal
, GHC
, Test.Framework
oder der Linker.