فیس بک نے بک ٹو بلڈ سسٹم شائع کیا۔

فیس بک نے ایک نیا بلڈ سسٹم، Buck2 متعارف کرایا ہے، جس میں بہت بڑے ذخیروں سے پروجیکٹس بنانے پر توجہ دی گئی ہے جس میں مختلف پروگرامنگ زبانوں میں کوڈ شامل ہے۔ فیس بک کے ذریعہ پہلے استعمال کیے گئے نئے نفاذ اور بک سسٹم کے درمیان اہم فرق جاوا کے بجائے رسٹ زبان کا استعمال اور اسمبلی کے عمل کی کارکردگی اور کارکردگی میں نمایاں اضافہ ہے (اسی بنیادی ڈھانچے میں داخلی ٹیسٹوں میں، Buck2 اسمبلی انجام دیتا ہے۔ بک سے دوگنا تیز کام)۔ کوڈ اپاچی 2.0 لائسنس کے تحت تقسیم کیا گیا ہے۔

سسٹم مخصوص زبانوں میں بلڈنگ کوڈ سے منسلک نہیں ہے اور باکس سے باہر فیس بک کے ذریعے استعمال ہونے والے C++، Python، Rust، Kotlin، Erlang، Swift، Objective-C، Haskell اور OCaml میں لکھے گئے بلڈنگ پروجیکٹس کو سپورٹ کرتا ہے۔ Python پر مبنی Starlark زبان (جیسا کہ Bazel میں) ایڈ آن ڈیزائن کرنے، اسکرپٹس اور قواعد بنانے کے لیے استعمال ہوتی ہے۔ Starlark آپ کو تعمیراتی نظام کی صلاحیتوں کو بڑھانے اور تعمیر کیے جانے والے منصوبوں میں استعمال ہونے والی مخصوص زبانوں سے خلاصہ کرنے کی اجازت دیتا ہے۔

اعلی کارکردگی نتائج کی کیشنگ، کام کے متوازی اور کاموں کے ریموٹ ایگزیکیوشن (ریموٹ بلڈ ایگزیکیوشن) کے لیے سپورٹ کے ذریعے حاصل کی جاتی ہے۔ تعمیراتی ماحول میں، "تنگی" کا تصور استعمال کیا جاتا ہے - مرتب کردہ کوڈ کو بیرونی دنیا سے کاٹ دیا جاتا ہے، تعمیراتی عمل کے دوران باہر سے کچھ بھی نہیں لوڈ کیا جاتا ہے، اور مختلف سسٹمز پر کام کو بار بار انجام دینے سے ایک ہی نتیجہ نکلتا ہے ( بار بار تعمیرات، مثال کے طور پر، ڈویلپر کی مشین پر پروجیکٹ بنانے کا نتیجہ بالکل ویسا ہی ہوگا جیسا کہ مسلسل انٹیگریشن سرور پر بنایا جاتا ہے)۔ انحصار کی کمی کی صورتحال کو بک 2 میں غلطی کے طور پر سمجھا جاتا ہے۔

Buck2 اہم خصوصیات:

  • پروگرامنگ لینگویجز کو سپورٹ کرنے کے اصول اور بلڈ سسٹم کے بنیادی حصے کو مکمل طور پر الگ کر دیا گیا ہے۔ قواعد Starlark زبان میں لکھے گئے ہیں، اور Starlark ٹول کٹ اور نفاذ Rust میں لکھا گیا ہے۔
  • تعمیراتی نظام ایک واحد اضافی انحصاری گراف (مرحلوں میں تقسیم کیے بغیر) استعمال کرتا ہے، جو آپ کو بک اور بازل کے مقابلے کام کے متوازی ہونے کی گہرائی کو بڑھانے اور کئی قسم کی غلطیوں سے بچنے کی اجازت دیتا ہے۔
  • GitHub پر شائع کردہ Buck2 کوڈ اور پروگرامنگ لینگویج سپورٹ رولز فیس بک کے بنیادی ڈھانچے میں استعمال ہونے والے اندرونی ورژن سے تقریباً یکساں ہیں (صرف فرق فیس بک کے استعمال کردہ کمپائلر ایڈیشنز اور بلڈ سرورز کے پابند ہیں)۔
  • بلڈ سسٹم کو ریموٹ جاب ایگزیکیوشن سسٹم کے ساتھ انضمام کے ساتھ ڈیزائن کیا گیا ہے جو آپ کو ریموٹ سرورز پر جاب چلانے کی اجازت دیتا ہے۔ ریموٹ ایگزیکیوشن API Bazel کے ساتھ مطابقت رکھتا ہے اور اسے Buildbarn اور EngFlow کے ساتھ مطابقت کے لیے جانچا گیا ہے۔
  • ورچوئل فائل سسٹمز کے ساتھ انضمام فراہم کیا جاتا ہے، جس میں پوری ریپوزٹری کے مواد کو پیش کیا جاتا ہے، لیکن درحقیقت، ریپوزٹری کے ایک حصے کے اصل مقامی ٹکڑے کے ساتھ کام کیا جاتا ہے (ڈیولپر پوری ریپوزٹری کو دیکھتا ہے، لیکن صرف مطلوبہ جن فائلوں تک رسائی حاصل کی جاتی ہے وہ ذخیرہ سے بازیافت ہوتی ہیں)۔ ایڈن ایف ایس اور گٹ ایل ایف ایس پر مبنی وی ایف ایس کی حمایت کی جاتی ہے، جو سیپلنگ استعمال کرتے ہیں۔

ماخذ: opennet.ru

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