আমি দীর্ঘদিন ধরে জাভা বিকাশকারী হয়ে থাকি, তবে সম্প্রতি আমি একটি হাস্কেল দলে যোগ দিয়েছি। জাভা বিশ্বে, আপনার যদি একটি বিশাল প্রকল্প থাকে, এতে বেশ কয়েকটি দল এতে কাজ করে থাকে, তবে একটি সাধারণ পন্থা হল মাভেনের মতো একটি আর্টিক্যাক্ট সার্ভার যেমন উন্নয়নের গতি বাড়িয়ে তোলা এবং ব্যবহার করা। পিঁপড়া, মাভেন, গ্রেডলের মতো অসংখ্য বিল্ড সরঞ্জামগুলি প্রকল্পটি তৈরি করতে পারে এবং আর্টিক্যাক্ট সার্ভারে একটি জার ফাইল আপলোড করতে পারে যা দলের ব্যথা ছাড়াই বাকী দল ব্যবহার করতে পারে। অতএব, প্রকল্পটিকে ছোট ছোট উপ-প্রকল্পে ভাগ করে নেওয়ার সময়টিও মারাত্মকভাবে হ্রাস পেয়েছে।
হাস্কেল দিকে, আমরা cabal
প্রকল্পটি তৈরিতে ব্যবহার করছি। আমাদের প্রকল্পটি অপটিমাইজেশন ছাড়াই তৈরি করতে 10-15 মিনিট সময় নেয়। সংকলক অপ্টিমাইজেশন চালু থাকলে কয়েক ঘন্টা সময় লাগে, যা বেদনাদায়ক।
আমি অবাক হই, আমরা এখানে জাভাতে যেমন করি তেমন কীভাবে করতে পারি। কোনও আর্টিফ্যাক্ট সার্ভারে প্যাকেজগুলির বাইনারি (গ্রন্থাগারগুলি) সংকলন এবং আপলোড করার এবং বিল্ড-টাইম সময়ে প্রাক-বিল্ট বাইনারিগুলি ব্যবহার করার কি সহজ উপায় আছে? আমি জানি যেহেতু হাস্কেল মেশিন কোড তৈরি করে (জাভাতে বাইট কোডের পরিবর্তে) সেখানে সামঞ্জস্যতা সংক্রান্ত সমস্যা থাকতে পারে, তবে আমাদের কাছে আর্টিফ্যাক্ট সার্ভারে সঞ্চিত বিভিন্ন আর্কিটেকচার / ওএসের জন্য আলাদা আলাদা বাইনারি থাকতে পারে।
cabal
, GHC
, Test.Framework
অথবা linker।