D'fhoilsigh Facebook an córas tógála Buck2

Thug Facebook isteach córas tógála nua, Buck2, a bhfuil sé mar aidhm aige tógáil tionscadal ó stórtha an-mhóra a eagrú, lena n-áirítear cód i dteangacha ríomhchlárúcháin éagsúla. Is iad na príomhdhifríochtaí idir an cur i bhfeidhm nua agus córas Buck a úsáideadh roimhe seo ag Facebook ná úsáid na teanga Rust in ionad Java agus méadú suntasach ar éifeachtúlacht agus ar tháirgiúlacht an phróisis tionóil (i dtástálacha inmheánacha sa bhonneagar céanna, déanann Buck2 tionól. tascanna dhá uair chomh tapa le Buck). Déantar an cód a dháileadh faoi cheadúnas Apache 2.0.

Níl an córas ceangailte le cóimeáil cód i dteangacha ar leith agus tacaíonn sé amach as an mbosca le tionscadail a thionól atá scríofa sna teangacha C++, Python, Rust, Kotlin, Erlang, Swift, Cuspóir-C, Haskell agus OCaml , in úsáid ag Facebook. Úsáidtear an teanga Starlark, atá bunaithe ar Python (mar atá i Bazel), chun breiseáin a dhearadh, scripteanna agus rialacha a thógáil. Ligeann Starlark duit cumais an chórais tionóil a leathnú agus teibí ó na teangacha sainiúla a úsáidtear sna tionscadail le chéile.

Baintear ardfheidhmíocht amach trí thaisceadh na dtorthaí, trí chomhthreomharú oibre agus trí thacú le tascanna a chur i gcrích go cianda (Forghníomhú Tógála Cianda). Sa timpeallacht tionóil, úsáidtear an coincheap "hermeticity" - déantar an cód cóimeáilte a ghearradh amach ón domhan lasmuigh, ní luchtaítear aon rud ón taobh amuigh le linn an phróisis tionóil, agus déantar an toradh céanna ar obair arís agus arís eile ar chórais éagsúla ( tionóil arís agus arís eile, mar shampla, beidh an toradh ar thionscadal a chur le chéile ar mheaisín an fhorbróra go hiomlán comhionann leis an tógáil ar an bhfreastalaí comhtháthú leanúnach). Breathnaítear ar chás an easpa spleáchais mar earráid i Buck2.

Príomhghnéithe Buck2:

  • Tá na rialacha maidir le tacú le teangacha ríomhchlárúcháin agus croílár an chórais tionóil go hiomlán ar leithligh. Úsáideann na rialacha teanga Starlark, agus tá foireann uirlisí agus cur i bhfeidhm Starlark scríofa i Rust.
  • Úsáideann an córas tionóil graf spleáchais incriminteach amháin (gan roinnt ina chéimeanna), a cheadaíonn doimhneacht comhthreomharú na hoibre i gcomparáid le Buck agus Bazel a mhéadú agus go leor cineálacha earráidí a sheachaint.
  • Tá cód Buck2 a foilsíodh ar GitHub agus na rialacha chun tacú le teangacha ríomhchlárúcháin beagnach mar a chéile leis an leagan inmheánach a úsáidtear i mbonneagar Facebook (is iad na difríochtaí amháin atá ann maidir leis na heagráin de thiomsaitheoirí agus de fhreastalaithe cóimeála a úsáidtear i Facebook).
  • Tá an córas tionóil deartha le súil ar chomhtháthú le córais chianfheidhmithe tascanna a ligeann duit obair a rith ar fhreastalaithe cianda. Tá an API forghníomhaithe iargúlta comhoiriúnach le Bazel agus déantar é a thástáil le haghaidh comhoiriúnachta le Buildbarn agus EngFlow.
  • Soláthraítear comhtháthú le córais comhaid fhíorúla, ina gcuirtear inneachar an stór iomlán i láthair, ach go deimhin, déantar obair le slice áitiúil reatha de chuid den stór (feiceann an forbróir an stór iomlán, ach na comhaid riachtanacha amháin. a bhfuil rochtain orthu a bhaintear as an stór). Tugtar tacaíocht do VFS atá bunaithe ar EdenFS agus Git LFS, a úsáidtear i Sapling.

Foinse: oscailtenet.ru

Add a comment