Gcoba umqokeleli womthombo ovulekileyo ukusuka kwiC/C++ ukuya kwiWebAssembly kunye neJavaScript

chwayita

I-Cheerp: I-C++ Compiler yeWebhu

Kutshanje kubhengezwe Ukukhutshwa kweCheerp 3.0, umqambi lowo ikuvumela ukuba uqokelele nayiphi na ikhowudi yeC/C++ kwiWebAssembly okanye kwiJavaScript. Isebe elitsha liphawuleka ngokuhambisa umqokeleli kunye namathala eencwadi ahamba nawo ukuba asebenzise imvume ye-Apache 2.0 kunye ne-LLVM evumelekileyo, kunomgaqo-nkqubo welayisensi olinganiselweyo osetyenzisiweyo ngaphambili, onika i-GPLv2 ilayisensi yokukhetha kwiiprojekthi ezingarhwebi kunye nomnini-layisenisi kwiiprojekthi zorhwebo.

I-Cheerp ingasetyenziselwa zombini kwi-port ekhoyo ye-C / C ++ izicelo kunye neelayibrari zokuqhuba kwi-browser, okanye ukwenza usetyenziso oluphezulu lwewebhu kunye namacandelo e-WebAssembly ukususela ekuqaleni.

Sekudlule unyaka ukususela ekukhutshweni kwangaphambili kwe-Cheerp ( Cheerp 2.7 ), kwaye le nguqulo entsha igcwele iimpawu ezintsha kunye nokulungiswa oku, kwakhona, ukuhambisa imeko yobugcisa bokusebenzisa i-C ++ njengolwimi lwenkqubo yezicelo zeWebhu. imidlalo.

Okona kubaluleke kakhulu, ngolu khululo senza utshintsho olubalulekileyo kwimodeli yelayisensi yeCheerp. Ukusukela kwi-Cheerp 3.0, onke amacandelo angundoqo ohlanganisa kunye namathala eencwadi ngoku anikwe imvume phantsi kwelayisensi ye-Apache 2.0/LLVM. Oku kuphawula utyeshelo olukhulu kwi-GPLv2 yethu yangaphambili/imodeli yelayisensi yorhwebo emibini, ivumela i-Cheerp 3.0 ukuba isetyenziselwe nayiphi na injongo, ngaphandle kwemida.

Malunga Cheerp

Le projekthi ikuvumela ukuba udibanise ikhowudi yeC / C ++ kunye neJavaScript kwisicelo sewebhu ngokukwazi ukufikelela kwikhowudi yeJavaScript ukuya kwimisebenzi eyaphuhliswa ekuqaleni kwiC / C ++, kwaye ukusuka kwikhowudi yeC / C ++ ukuya kwizinto zeJavaScript, iilayibrari zeJavaScript, ii-APIs zewebhu, kunye nazo zonke iimpawu zeDOM, kunye nokuvumela ukuba wenze izakhiwo ezixubeneyo, inxalenye ye ikhowudi eqokelela kwiJavaScript kunye namalungu kwiWebAssembly. Ixhasa iiprojekthi zokwakha ezisebenzisa i-libc eqhelekileyo kunye ne-libc++ amathala eencwadi.

Xa kuthelekiswa ne-Emscripten compiler, Cheerp yenza ikhowudi ephakathi yeWebAssembly ephuculweyo kunye necwecwe (Ngomndilili, ubungakanani beefayile ezinesiphumo zincinci nge-7%.)

Ngokwengqiqo, iyantlukwano ibilisa kwinto yokuba Bhalisa isetyenziswa njengefomathi yenjongo yeWebAssembly kwaye yenza ukubophelela kunye nokwenza ngcono kwinqanaba le-post-processing WebAssembly (wasm-opt). I-Cheerp isebenzisa i-LLVM bytecode njengomelo oluphakathi lwamathala eencwadi kunye neefayile zento, evumela ukulungiselelwa okubanzi kweprojekthi kusetyenziswa imethadatha yezinga le-LLVM ngaphandle kwesidingo sokusetyenzwa ngasemva.

Inqaku elidibeneyo:
Emscripten 3.0, isixhobo sokwakha seWebAssembly usebenzisa iLLVM

Kwakhona, I-Cheerp isebenzisa i-PreExecuter optimizer ukwenza kwangaphambili ikhowudi ngexesha lokuqokelela, umzekelo, ukuguqula abakhi abasetyenziselwa ukuqalisa izinto zehlabathi kwii-constants. Ukongeza, i-PartialExecuter isetyenziswa ngexesha lokuqulunqa, ethi, ngokusekelwe ekwahluleleni iiparamitha zomsebenzi, isuse ikhowudi eqinisekisiweyo ukuba ingasetyenziswa xa kusenziwa.

I-Cheerp inokuvelisa ikhowudi yeJavaScript ukuze isebenze ngamandla ngememori. igqunywe ngumqokeleli wenkunkuma. Ngokukodwa, endaweni yokulinganisa indawo yedilesi yendabuko kunye neentlobo ezichwetheziweyo, i-Cheerp inikeza imephu ethe ngqo ukusuka kwizinto ze-C ++ ukuya kwizinto zeJavaScript, ezinciphisa ukusetyenziswa kwememori ngenxa yokuba umqokeleli wenkunkuma weJavaScript unamandla okususa izinto ezingasetyenziswanga. Ukuphucula ukusebenza, ikhowudi ephakathi yeWebAssembly eyenziweyo isebenzisa izandiso ze-SIMD ukulungiselela ukuhambelana kwedatha yokusebenza.

I-Cheerp ingasetyenziswa njengeqonga lokwakha usetyenziso lwewebhu oluzinzisiweyo umxhasi/umncedisi kwi C++. Kwinkqubo yangoku, kuqhelekile ukuphuhlisa i-browser-based-front-end eyahlukileyo ebhalwe kwiJavaScript kunye ne-back-end eyahlukileyo ebhalwe kwi-PHP, i-Python, i-Ruby, okanye i-JavaScript/Node.js.

I-Cheerp ibonelela ngeendlela zokwakha usetyenziso olupheleleyo lwe-C ++ lwewebhu oluxhasa i-backend kunye ne-frontend kwisiseko sekhowudi enye.

Ngexesha lenkqubo yokwakha, i-server-side ihlanganiswe kwikhowudi yendalo, kwaye i-interface iguqulelwa kumboniso weJavaScript. Ukulungiswa kweempazamo kuzo zonke iinxalenye zeprojekthi, kubandakanywa nezo ziguqulelwe kwiJavaScript, ziqhutyelwa ngokusebenzisa i-C ++ imibhalo yomthombo kusetyenziswa iteknoloji yoMthombo weMaphu.

Ekugqibeleni, ukuba unomdla wokwazi okungakumbi ngayo, ungazijonga iinkcukacha kwi ukulandela ikhonkco.

Ikhowudi yokudibanisa isekelwe kwi-LLVM kunye nophuhliso lweClang kwaye ibandakanya ukulungiswa okongeziweyo ukuphucula ukusebenza kunye nokunciphisa ubungakanani bemveliso ehlanganisiweyo.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Inoxanduva lwedatha: I-AB Internet Networks 2008 SL
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.