Emscripten 3.0 inapatikana, mkusanyaji wa C/C++ kwa WebAssembly

Kutolewa kwa mkusanyaji wa Emscripten 3.0 kumechapishwa, kukuruhusu kukusanya msimbo katika C/C++ na lugha zingine ambazo sehemu za mbele za LLVM zinapatikana katika msimbo wa kiwango cha chini wa kiwango cha kati WebAssembly, kwa ujumuishaji unaofuata na miradi ya JavaScript, inayoendeshwa. katika kivinjari cha wavuti, na utumie katika Node.js au kuunda programu za majukwaa nyingi za kusimama pekee zinazoendeshwa kwa kutumia wakati wa kukimbia wa wasm. Nambari ya mradi inasambazwa chini ya leseni ya MIT. Mkusanyaji hutumia maendeleo kutoka kwa mradi wa LLVM, na maktaba ya Binaryen inatumika kwa utengenezaji na uboreshaji wa WebAssembly.

Lengo kuu la mradi wa Emscripten ni kuunda chombo kinachokuwezesha kutekeleza msimbo kwenye Wavuti bila kujali lugha ya programu ambayo kanuni imeandikwa. Programu zilizokusanywa zinaweza kutumia simu kwa maktaba za kawaida za C na C++ (libc, libcxx), viendelezi vya C++, usomaji wa maandishi mengi, API za POSIX, na maktaba nyingi za media titika. API za kuunganishwa na API ya Wavuti na msimbo wa JavaScript hutolewa tofauti.

Emscripten inasaidia utangazaji wa matokeo ya maktaba ya SDL2 kupitia Canvas, na pia hutoa usaidizi kwa OpenGL na EGL kupitia WebGL, ambayo inakuwezesha kubadilisha programu za picha na michezo hadi WebAssembly (kwa mfano, kuna bandari ya zana za zana za Qt na inasaidia Unreal Engine. 4 na Injini za mchezo wa Kitengo, injini ya Bullet ya mwili). Mbali na kuandaa msimbo katika C/C++, miradi inatengenezwa kando ili kuhakikisha uzinduzi wa wakalimani na mashine pepe katika vivinjari vya lugha Lua, C#, Python, Ruby na Perl. Inawezekana pia kutumia sehemu za mbele zisizo za Clang kwa LLVM, zinazopatikana kwa lugha kama vile Swift, Rust, D na Fortran.

Mabadiliko makubwa katika Emscripten 3.0:

  • Maktaba ya musl C inayotumika katika emscripten imesasishwa hadi toleo la 1.2.2 (toleo la 2 lilitumika katika tawi la Emscripten 1.1.15.x).
  • Sehemu ya utendakazi ambazo zilitumika sana ndani ya mradi zimeondolewa kutoka kwa maktaba ya parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypertsFutureType, isStructuralType getStructuralTypertsn, GetStructuralTypertsSn, GetStructuralTypertss, GetStructuralTypert Aina, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Katika violezo vya shell.html na shell_minimal.html, matokeo ya ujumbe wa hitilafu unaotokea wakati wa utendakazi wa emscripten na hutolewa na programu kupitia stderr huwashwa kwa chaguo-msingi ili kutumia console.warn badala ya console.error.
  • Imeongeza uwezo wa kubainisha usimbaji wa maandishi maalum unaotumika katika majina ya faili. Usimbaji unaweza kubainishwa katika mfumo wa kiambishi tamati wakati wa kupitisha jina la faili, kwa mfano, "a.rsp.utf-8" au "a.rsp.cp1251").

Chanzo: opennet.ru

Kuongeza maoni