Emscripten 3.0 ikupezeka, C/C++ to WebAssembly compiler

Kutulutsidwa kwa compiler ya Emscripten 3.0 kwasindikizidwa, kukulolani kuti muphatikize kachidindo mu C/C++ ndi zilankhulo zina zomwe LLVM-based frontends imapezeka mu code yapakatikati yapakatikati ya WebAssembly, kuti muphatikizidwe ndi mapulojekiti a JavaScript, omwe akuyenda. mu msakatuli, ndikugwiritsa ntchito mu Node.js kapena kupanga mapulatifomu ambiri omwe amayenda pogwiritsa ntchito wasm runtime. Khodi ya polojekitiyi imagawidwa pansi pa layisensi ya MIT. Wopangayo amagwiritsa ntchito zomwe zikuchitika kuchokera ku projekiti ya LLVM, ndipo laibulale ya Binaryen imagwiritsidwa ntchito pakupanga ndi kukhathamiritsa kwa WebAssembly.

Cholinga chachikulu cha polojekiti ya Emscripten ndikupanga chida chomwe chimakulolani kuti mugwiritse ntchito code pa Webusaiti mosasamala kanthu za chinenero cha pulogalamu yomwe codeyo imalembedwa. Mapulogalamu ophatikizidwa amatha kugwiritsa ntchito mafoni ku malaibulale wamba C ndi C++ (libc, libcxx), C++ extensions, pthreads-based multithreading, POSIX APIs, ndi malaibulale ambiri ochezera. Ma API ophatikiza ndi Web API ndi JavaScript code amaperekedwa mosiyana.

Emscripten imathandizira kutulutsa kwa laibulale ya SDL2 kudzera pa Canvas, komanso imapereka chithandizo kwa OpenGL ndi EGL kudzera pa WebGL, yomwe imakulolani kuti musinthe zojambula ndi masewera kukhala WebAssembly (mwachitsanzo, pali doko la Qt toolkit ndikuthandizira Unreal Engine 4 ndi injini zamasewera a Unit, injini ya Bullet yakuthupi). Kuphatikiza pakupanga kachidindo mu C/C++, mapulojekiti akupangidwa padera kuti atsimikizire kukhazikitsidwa kwa omasulira ndi makina enieni m'masakatuli a zinenero za Lua, C#, Python, Ruby ndi Perl. Ndikothekanso kuyika ma frontend omwe si a Clang ku LLVM, omwe amapezeka m'zilankhulo monga Swift, Rust, D ndi Fortran.

Zosintha zazikulu mu Emscripten 3.0:

  • Laibulale ya musl C yogwiritsidwa ntchito mu emscripten yasinthidwa kukhala 1.2.2 (mtundu 2 unagwiritsidwa ntchito mu nthambi ya Emscripten 1.1.15.x).
  • Zina mwazinthu zomwe zidagwiritsidwa ntchito kwambiri mkati mwa pulojekitiyi zachotsedwa mu laibulale ya parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralType getStructuralTypertSurt, isStructuralTypertsPrtsFuture, GetStructuralTypertsFutures Type, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Mu ma templates a shell.html ndi shell_minimal.html, zotuluka za mauthenga olakwika omwe amapezeka panthawi ya ntchito ya emscripten ndipo amatulutsidwa ndi pulogalamu kudzera pa stderr amasinthidwa mwachisawawa kuti agwiritse ntchito console.warn m'malo mwa console.error.
  • Anawonjezera luso lofotokozera ma encoding omwe amagwiritsidwa ntchito m'mafayilo. Kusindikiza kungathe kutchulidwa ngati mawu okwana pamene mukudutsa dzina la fayilo, mwachitsanzo, "a.rsp.utf-8" kapena "a.rsp.cp1251").

Source: opennet.ru

Kuwonjezera ndemanga