मैं लंबे समय तक जावा डेवलपर रहा करता था, लेकिन हाल ही में, मैं एक हास्केल टीम में शामिल हुआ। जावा दुनिया में, यदि आपके पास एक बड़ी परियोजना है, तो उस पर काम करने वाली कई टीमों के साथ, एक सामान्य दृष्टिकोण मावेन जैसे एक विरूपण साक्ष्य सर्वर का उपयोग करना है ताकि विकास में आसानी हो और गति बढ़े। चींटी बिल्ड उपकरण, जैसे चींटी, मावेन, ग्रैडल, परियोजना का निर्माण कर सकते हैं और आर्टवर्क सर्वर पर एक जार फाइल अपलोड कर सकते हैं जिसका उपयोग बाकी टीम द्वारा बिना दर्द के किया जा सकता है। इसलिए, परियोजना को छोटे उप-परियोजनाओं में विभाजित करके, बिल्ड समय भी काफी कम हो जाता है।
हास्केल पक्ष पर, हम cabal
परियोजना का निर्माण करने के लिए उपयोग कर रहे हैं । हमारी परियोजना को अनुकूलन के बिना बनाने में लगभग 10-15 मिनट लगते हैं। कंपाइलर ऑप्टिमाइज़ेशन चालू होने में कुछ घंटे लगते हैं, जो दर्दनाक है।
मुझे आश्चर्य है, हम यहाँ जावा में जैसा करते हैं, हम वैसा ही कैसे कर सकते हैं। क्या किसी आर्टिफ़िशियल सर्वर पर संकुल (लाइब्रेरी) के बाइनरी को संकलित और अपलोड करने का एक आसान तरीका है और बिल्ड समय पर प्रीबिलीट बायनेरिज़ का उपयोग करना है? मुझे पता है कि चूंकि हास्केल मशीन कोड (जावा में बाइट कोड के बजाय) उत्पन्न करता है, इसलिए संगतता समस्याएं हो सकती हैं, लेकिन हम संभवतः विरूपण साक्ष्य सर्वर पर संग्रहीत विभिन्न आर्किटेक्चर / ओएस के लिए अलग-अलग बायनेरिज़ हो सकते हैं।
cabal
, GHC
, Test.Framework
या लिंकर।