I-Facebook ishicilele uhlelo lokwakha lwe-Buck2

I-Facebook yethule uhlelo olusha lokwakha, i-Buck2, okuhloswe ngayo ukuhlela ukwakhiwa kwamaphrojekthi kusuka kumakhosombe amakhulu kakhulu, kufaka phakathi ikhodi ngezilimi zokuhlela ezahlukahlukene. Umehluko oyinhloko phakathi kokuqaliswa okusha nohlelo lwe-Buck olwalusetshenziswa ngaphambilini ku-Facebook ukusetshenziswa kolimi lwe-Rust esikhundleni se-Java kanye nokwanda okukhulu ekusebenzeni kahle nasekukhiqizeni inqubo yokuhlanganisa (ekuhlolweni kwangaphakathi kwingqalasizinda efanayo, i-Buck2 yenza umhlangano. imisebenzi kabili ngokushesha njengoBuck). Ikhodi isatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0.

Uhlelo aluboshelwe ekuhlanganisweni kwekhodi ngezilimi ezithile futhi ngaphandle kwebhokisi kusekela ukuhlanganiswa kwamaphrojekthi abhalwe ngezilimi C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell kanye ne-OCaml , esetshenziswa yi-Facebook. Ulimi lwe-Starlark, olusekelwe ku-Python (njengase-Bazel), lusetshenziselwa ukuklama izengezo, ukwakha imibhalo nemithetho. I-Starlark ikuvumela ukuthi unwebe amandla esistimu yokuhlanganisa futhi ucabangele ezilimini ezithile ezisetshenziswa kumaphrojekthi ahlanganisiwe.

Ukusebenza okuphezulu kufinyelelwa ngokugcinwa kwesikhashana kwemiphumela, ukufana komsebenzi nokusekelwa kokwenziwa kwemisebenzi ukude (Ukwenziwa Kwesakhiwo Esikude). Endaweni yomhlangano, kusetshenziswa umqondo we "hermeticity" - ikhodi ehlanganisiwe inqanyulwe ezweni langaphandle, akukho okulayishwa ngaphandle ngesikhathi senqubo yomhlangano, futhi ukukhishwa okuphindaphindiwe komsebenzi kumasistimu ahlukene kuholela kumphumela ofanayo. imihlangano ephindaphindiwe, isibonelo, umphumela wokuhlanganisa iphrojekthi emshinini womthuthukisi uzofana ngokuphelele nokwakhiwa kuseva yokuhlanganisa eqhubekayo). Isimo sokuntula ukuncika sibonwa njengephutha ku-Buck2.

Izici ezibalulekile ze-Buck2:

  • Imithetho yokusekela izilimi zokuhlela kanye nomnyombo wesistimu yokuhlanganisa ihluke ngokuphelele. Imithetho isebenzisa ulimi lwe-Starlark, kanye nekhithi yamathuluzi ye-Starlark nokusebenzisa kubhalwe nge-Rust.
  • Isistimu yokuhlanganisa isebenzisa igrafu eyodwa yokuncika okukhuphukayo (ngaphandle kokuhlukaniswa ngezigaba), okuvumela ukukhulisa ukujula kokuhambisana komsebenzi uma kuqhathaniswa no-Buck no-Bazel nokugwema izinhlobo eziningi zamaphutha.
  • Ikhodi ye-Buck2 eshicilelwe ku-GitHub kanye nemithetho yokusekela izilimi zokuhlela icishe ifane nenguqulo yangaphakathi esetshenziswe kungqalasizinda ye-Facebook (umehluko kuphela ohlobene nezinhlelo zabadidiyeli namaseva wokuhlanganisa asetshenziswa ku-Facebook).
  • Uhlelo lokuhlanganisa luklanywe ngeso lokuhlanganiswa nezinhlelo zokwenza umsebenzi ezikude ezikuvumela ukuthi usebenzise umsebenzi kumaseva akude. I-API yokusayinda ekude iyasebenzisana ne-Bazel futhi ihlolelwe ukusebenzisana ne-Buildbarn ne-EngFlow.
  • Ukuhlanganiswa nezinhlelo zefayela ezibonakalayo kunikezwa, lapho okuqukethwe kwenqolobane yonke kuvezwa, kodwa empeleni, umsebenzi wenziwa ngocezu lwamanje lwengxenye yendawo yokugcina (umthuthukisi ubona yonke inqolobane, kodwa amafayela adingekayo kuphela. ezifinyelelwe zikhishwa kunqolobane). I-VFS esekelwe ku-EdenFS ne-Git LFS, esetshenziswa ku-Sapling, iyasekelwa.

Source: opennet.ru

Engeza amazwana