LLVM lld کے ذریعہ تیار کردہ مولڈ بلڈر کی پہلی مستحکم ریلیز

LLVM lld لنکر اور chibicc کمپائلر کے مصنف Rui Ueyama نے نئے ہائی پرفارمنس مولڈ لنکر کی پہلی مستحکم ریلیز پیش کی، جو کہ آبجیکٹ فائل کو لنک کرنے کی رفتار کے لحاظ سے GNU گولڈ اور LLVM lld لنکرز سے نمایاں طور پر آگے ہے۔ پروجیکٹ کو پروڈکشن کی تعیناتیوں کے لیے تیار سمجھا جاتا ہے اور اسے لینکس سسٹمز پر GNU لنکر کے لیے تیز تر شفاف متبادل کے طور پر استعمال کیا جا سکتا ہے۔ اگلی بڑی ریلیز کے منصوبوں میں macOS پلیٹ فارم کو تیاری کے لیے سپورٹ لانا شامل ہے، جس کے بعد ونڈوز کے لیے مولڈ کو ڈھالنے پر کام شروع ہو جائے گا۔

مولڈ کو C++ (C++20) میں لکھا گیا ہے اور AGPLv3 لائسنس کے تحت تقسیم کیا گیا ہے، جو GPLv3 کے مطابق ہے لیکن GPLv2 کے مطابق نہیں ہے، کیونکہ نیٹ ورک سروسز کو تیار کرتے وقت اسے کھولنے کے لیے تبدیلیوں کی ضرورت ہوتی ہے۔ یہ انتخاب ترقیاتی فنڈنگ ​​حاصل کرنے کی خواہش کی وجہ سے ہے - مصنف ایم آئی ٹی جیسے اجازت نامے کے تحت دوبارہ لائسنس دینے کے لیے کوڈ کے حقوق فروخت کرنے یا ان لوگوں کے لیے الگ تجارتی لائسنس فراہم کرنے کے لیے تیار ہے جو AGPL سے مطمئن نہیں ہیں۔

مولڈ GNU لنکر کی تمام خصوصیات کو سپورٹ کرتا ہے اور بہت تیز ہے، صرف cp کے ساتھ فائلوں کو کاپی کرنے کی نصف رفتار سے لنک کرتا ہے۔ مثال کے طور پر، کروم 96 (کوڈ سائز 1.89 جی بی) بناتے وقت، GNU گولڈ کا استعمال کرتے ہوئے 8 کور کمپیوٹر پر c debuginfo executables بنانے میں 53 سیکنڈ، LLVM lld کے لیے 11.7 سیکنڈ، اور Mold کے لیے صرف 2.2 سیکنڈ (26 گنا تیز) GNU گولڈ)۔ کلینگ 13 (3.18 GB) کو جوڑنے پر، GNU گولڈ میں 64 سیکنڈ، LLVM lld میں 5.8 سیکنڈ، اور Mold میں 2.9 سیکنڈ لگتے ہیں۔ Firefox 89 (1.64 GB) کو لنک کرتے وقت، GNU گولڈ میں 32.9 سیکنڈ، LLVM lld میں 6.8 سیکنڈ، اور Mold میں 1.4 سیکنڈ لگتے ہیں۔

LLVM lld کے ذریعہ تیار کردہ مولڈ بلڈر کی پہلی مستحکم ریلیز

لنک کے وقت کو کم کرنا ڈیبگنگ اور جانچ کی تبدیلیوں کے دوران قابل عمل فائلوں کو تیار کرنے کے عمل میں انتظار کو کم کرکے بڑے پروجیکٹس کو تیار کرنے کے قابل استعمال کو بہتر بنا سکتا ہے۔ مولڈ کو کوڈ میں ہر تبدیلی کے بعد لنک کرنے کے مکمل ہونے کا انتظار کرنے کی جھنجھلاہٹ، نیز ملٹی کور سسٹمز پر موجودہ لنکرز کی خراب کارکردگی، اور غیر ضروری طور پر سہارا لیے بغیر بنیادی طور پر مختلف لنکنگ فن تعمیر کو آزمانے کی خواہش سے حوصلہ افزائی کی گئی۔ پیچیدہ ماڈلز، جیسے انکریمنٹل لنکنگ۔

مولڈ میں کمپائلر کے ذریعہ تیار کردہ بڑی تعداد میں آبجیکٹ فائلوں سے ایک ایگزیکیوٹیبل فائل کو لنک کرنے کی اعلی کارکردگی تیز تر الگورتھم، دستیاب CPU کور کے درمیان فعال طور پر متوازی آپریشنز، اور زیادہ موثر ڈیٹا ڈھانچے کا استعمال کرکے حاصل کی جاتی ہے۔ مثال کے طور پر، Mold فائلوں کو کاپی کرنے، آبجیکٹ فائلوں کو میموری میں پیش کرنے، حروف کو حل کرتے وقت تیز ہیش ٹیبلز کا استعمال، ایک الگ تھریڈ میں ری لوکیشن ٹیبلز کو اسکین کرنے، اور مختلف فائلوں میں دہرائے گئے انضمام شدہ حصوں کو ڈپلیکیٹ کرنے کے ساتھ بیک وقت گہرا حساب لگانے کی تکنیک کو لاگو کرتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں