Tôi đã từng là một nhà phát triển Java trong một thời gian dài, nhưng gần đây, tôi đã tham gia một nhóm Haskell. Trong thế giới java, nếu bạn có một dự án lớn, với một vài nhóm làm việc với nó, một cách tiếp cận phổ biến là sử dụng một máy chủ tạo tác như Maven để dễ dàng và tăng tốc độ phát triển. Nhiều công cụ xây dựng, chẳng hạn như Ant, Maven, Gradle, có thể xây dựng dự án và tải một tệp jar lên máy chủ tạo tác có thể được sử dụng bởi phần còn lại của nhóm mà không bị đau. Do đó, bằng cách chia dự án thành các tiểu dự án nhỏ hơn, thời gian xây dựng cũng giảm đáng kể.
Về phía Haskell, chúng tôi đang sử dụng cabal
để xây dựng dự án. Dự án của chúng tôi mất khoảng 10-15 phút để xây dựng mà không cần tối ưu hóa. Phải mất vài giờ nếu bật tối ưu hóa trình biên dịch, điều này thật đau đớn.
Tôi tự hỏi, làm thế nào chúng ta có thể làm điều tương tự như chúng ta làm trong Java ở đây. Có cách nào dễ dàng để biên dịch và tải lên tệp nhị phân của các gói (thư viện) đến một máy chủ tạo tác và sử dụng các nhị phân dựng sẵn tại thời điểm xây dựng không? Tôi biết rằng vì Haskell tạo mã máy (chứ không phải mã byte trong Java) có thể có các vấn đề tương thích, nhưng chúng tôi có thể có các nhị phân khác nhau cho các kiến trúc / HĐH khác nhau được lưu trữ trên máy chủ tạo tác.
cabal
, GHC
, Test.Framework
hoặc các mối liên kết.