ĂshtĂ« publikuar versioni i kompilatorit Emscripten 3.0, i cili lejon kompilimin e kodit nĂ« C/C++ dhe gjuhĂ«ve tĂ« tjera pĂ«r tĂ« cilat ekzistojnĂ« frontend-e mbi bazĂ«n e LLVM, nĂ« kod tĂ« pĂ«rgjithshĂ«m tĂ« ndĂ«rmjetĂ«m me nivel tĂ« ulĂ«t WebAssembly, pĂ«r integrim tĂ« mĂ«tejshĂ«m me projektet JavaScript, pĂ«r ekzekutimin nĂ« shfletuesin web, pĂ«rdorimin nĂ« Node.js ose krijimin e aplikacioneve tĂ« shumtĂ«-platforma tĂ« izoluar qĂ« ekzekutohen pĂ«rmes wasm runtime. Kodi i projektit shpĂ«rndahet nĂ«n licencĂ«n MIT. Kompilatori pĂ«rdor tĂ« arriturat e projektit LLVM, dhe pĂ«r gjenerimin e WebAssembly dhe optimizimin Ă«shtĂ« pĂ«rdorur biblioteka Binaryen.
Qëllimi kryesor i zhvillimit të projektit Emscripten është krijimi i një mjeti që lejon ekzekutimin e kodit Web, pa marrë parasysh gjuhën e programimit me të cilën është shkruar ky kod. Në aplikacionet e kompliluara mund të përdoren thirrje për bibliotekat standarde C dhe C++ (libc, libcxx), zgjerimet C++, shumëprocësia mbi bazën e pthreads, API POSIX dhe shumë biblioteka multimedia. Përshtaten gjithashtu API të veçanta për integrim me Web API dhe kodin në JavaScript.
Emscripten mbështet përkthimin e daljes nga biblioteka SDL2 përmes Canvas, si dhe ofron mbështetje për OpenGL dhe EGL përmes WebGL, e cila lejon transformimin në WebAssembly për aplikacione dhe lojëra grafike (për shembull, ekziston një portim i toolkit-it Qt dhe mbështeten motorët e lojërave Unreal Engine 4 dhe Unity, si dhe motori fizik Bullet). Përveç kompilimit të kodit në C/C++, zhvillohen projekte të veçanta për të siguruar ekzekutimin në shfletues për interpretuese për makinave virtuale gjuhët Lua, C#, Python, Ruby dhe Perl. Gjithashtu, është e mundur të përdoren frontend-e të ndryshme nga Clang në LLVM, të disponueshme për gjuhë si Swift, Rust, D dhe Fortran.
Ndryshimet kryesore në Emscripten 3.0:
- Biblioteka C e përfshirë në emscripten, musl, është azhurnuar në versionin 1.2.2 (në degën Emscripten 2.x ishte përdorur versi 1.1.15).
- Një sërë funksionesh është fshirë nga biblioteka parseTools.js, të cilat kryesisht u përdorën brenda projektit: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType, getStructuralTypeParts, getStructuralTypePartBits, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
- Në shabllonet shell.html dhe shell_minimal.html, shfaqja e mesazheve të gabimeve që ndodhin gjatë ekzekutimit të emscripten dhe që jepen nga aplikacioni përmes stderr, për default është ndërruar në përdorimin e console.warn në vend të console.error.
- Shtuar mundësia për të përcaktuar një kodim të caktuar të tekstit që përdoret në emrat e skedarëve. Kodimi mund të caktohet në formë suksesi gjatë kalimit të emrit të skedarit, për shembull, «a.rsp.utf-8» ose «a.rsp.cp1251»).
Burimi: opennet.ru
