فیسبوک د Buck2 جوړ سیسټم خپور کړ

فیسبوک یو نوی جوړ سیسټم معرفي کړ، Buck2، چې موخه یې د ډیرو لویو زیرمو څخه د پروژو جوړول تنظیمول دي، په شمول د مختلف پروګرامینګ ژبو کې کوډ. د نوي پلي کولو او د بکس سیسټم تر مینځ مهم توپیرونه چې دمخه په فیسبوک کې کارول شوي د جاوا پرځای د زنګ ژبې کارول او د مجلس پروسې موثریت او تولید کې د پام وړ زیاتوالی دی (په ورته زیربنا کې داخلي ازموینو کې ، Buck2 مجلس ترسره کوي. کارونه د بکس په پرتله دوه چنده ګړندي دي). کوډ د اپاچی 2.0 جواز لاندې ویشل شوی.

سیسټم په ځانګړو ژبو کې د کوډ مجلس سره تړلی ندی او د بکس څخه بهر د C++، Python، Rust، Kotlin، Erlang، Swift، Objective-C، Haskell او OCaml ژبو کې لیکل شوي پروژو اسمبلۍ ملاتړ کوي. د فیسبوک لخوا کارول کیږي. د سټارلارک ژبه، د Python پر بنسټ (لکه څنګه چې په بازل کې)، د اضافو ډیزاین کولو، سکریپټونو او قواعدو جوړولو لپاره کارول کیږي. سټارلارک تاسو ته اجازه درکوي د مجلس سیسټم وړتیاوې پراخه کړئ او په راټول شوي پروژو کې کارول شوي ځانګړي ژبو څخه خلاص کړئ.

لوړ فعالیت د پایلو د کیش کولو ، د کار موازي کولو او د دندو د لرې پلي کولو لپاره ملاتړ (د ریموټ جوړونې اجرا) له لارې ترلاسه کیږي. د مجلس په چاپیریال کې، د "هرمیتیکیت" مفهوم کارول کیږي - راټول شوی کوډ د بهرنۍ نړۍ څخه قطع شوی، د غونډې پروسې په جریان کې له بهر څخه هیڅ شی نه پورته کیږي، او په مختلفو سیسټمونو کې د کار تکرار اعدام ورته پایلې المل کیږي ( تکراري مجلسونه، د بیلګې په توګه، د پراختیا کونکي ماشین کې د پروژې راټولولو پایله به په بشپړ ډول د دوامداره ادغام سرور کې جوړونې سره ورته وي). د انحصار نشتوالي وضعیت په Buck2 کې د یوې تېروتنې په توګه پیژندل کیږي.

د بکس 2 کلیدي ځانګړتیاوې:

  • د پروګرام کولو ژبو مالتړ کولو قواعد او د مجلس سیسټم اساس په بشپړه توګه جلا دی. مقررات د سټارلارک ژبه کاروي، او د سټارلارک اوزار کټ او تطبیق په Rust کې لیکل شوي.
  • د اسمبلۍ سیسټم یو واحد زیاتیدونکي انحصار ګراف کاروي (پرته په مرحلو کې ویش) ، کوم چې د بکس او بازل په پرتله د کار موازي کولو ژوروالي ته اجازه ورکوي او د ډیری ډول غلطیو مخنیوی کوي.
  • په GitHub کې خپور شوی د بکس 2 کوډ او د پروګرام کولو ژبو مالتړ لپاره مقررات تقریبا د داخلي نسخې سره ورته دي چې د فیسبوک زیربنا کې کارول کیږي (یوازې توپیرونه په فیسبوک کې کارول شوي کمپیلرونو او اسمبلی سرورونو سره تړاو لري).
  • د مجلس سیسټم د لیرې دندې اجرا کولو سیسټمونو سره ادغام لپاره د سترګو سره ډیزاین شوی چې تاسو ته اجازه درکوي په ریموټ سرورونو کې کار پرمخ بوځي. د ریموټ اجرایی API د بازل سره مطابقت لري او د Buildbarn او EngFlow سره مطابقت لپاره ازمول شوی.
  • د مجازی فایل سیسټمونو سره ادغام چمتو شوی ، په کوم کې چې د ټول ذخیره مینځپانګې وړاندې کیږي ، مګر په حقیقت کې کار د ذخیره کولو د یوې برخې اوسني محلي ټوټې سره ترسره کیږي (پراختیا کونکي ټول ذخیره ګوري ، مګر یوازې اړین فایلونه هغه چې لاسرسی لري د ذخیره کولو څخه ایستل کیږي). VFS د EdenFS او Git LFS پر بنسټ چې په Sapling کې کارول کیږي، ملاتړ کیږي.

سرچینه: opennet.ru

Add a comment