私は以前からJava開発者でしたが、最近、Haskellチームに参加しました。Javaの世界では、複数のチームが取り組んでいる大規模なプロジェクトがある場合、Mavenなどのアーティファクトサーバーを使用して開発を容易にし、スピードアップするのが一般的なアプローチです。Ant、Maven、Gradleなどの多数のビルドツールを使用してプロジェクトをビルドし、jarファイルをアーティファクトサーバーにアップロードして、チームの残りのメンバーが簡単に使用できます。したがって、プロジェクトをより小さなサブプロジェクトに分割することにより、ビルド時間も大幅に短縮されます。
Haskell側ではcabal
、プロジェクトのビルドに使用しています。このプロジェクトは、最適化なしでビルドするのに約10〜15分かかります。コンパイラーの最適化がオンになっている場合、数時間かかりますが、これは苦痛です。
ここでJavaで行うのと同じことをどのように行うことができるのでしょうか。パッケージ(ライブラリ)のバイナリをコンパイルしてアーティファクトサーバーにアップロードし、ビルド時にビルド済みのバイナリを使用する簡単な方法はありますか?Haskellは(Javaのバイトコードではなく)マシンコードを生成するため、互換性の問題があるかもしれませんが、アーティファクトサーバーに格納されているアーキテクチャ/ OSごとに異なるバイナリを使用できる可能性があります。
cabal
、GHC
、Test.Framework
またはリンカー。