Emscripten 3.0 është i disponueshëm, një përpilues C/C++ në WebAssembly

Publikimi i përpiluesit Emscripten 3.0 është publikuar, duke ju lejuar të përpiloni kodin në C/C++ dhe gjuhë të tjera për të cilat frontendet e bazuara në LLVM janë të disponueshme në kodin e ndërmjetëm universal të nivelit të ulët WebAssembly, për integrim të mëvonshëm me projektet JavaScript, duke ekzekutuar në një shfletues uebi dhe përdorni në Node js ose krijoni aplikacione të pavarura me shumë platforma që funksionojnë duke përdorur wasm runtime. Kodi i projektit shpërndahet nën licencën MIT. Përpiluesi përdor zhvillimet nga projekti LLVM, dhe biblioteka Binaryen përdoret për gjenerimin dhe optimizimin e WebAssembly.

Qëllimi kryesor i projektit Emscripten është të krijojë një mjet që ju lejon të ekzekutoni kodin në ueb, pavarësisht nga gjuha e programimit në të cilën është shkruar kodi. Aplikacionet e përpiluara mund të përdorin thirrje për bibliotekat standarde C dhe C++ (libc, libcxx), shtesat C++, multithreading të bazuara në pthreads, API POSIX dhe shumë biblioteka multimediale. API-të për integrim me Web API dhe kodin JavaScript ofrohen veçmas.

Emscripten mbështet transmetimin e daljes së bibliotekës SDL2 përmes Canvas, dhe gjithashtu ofron mbështetje për OpenGL dhe EGL nëpërmjet WebGL, e cila ju lejon të konvertoni aplikacionet grafike dhe lojërat në WebAssembly (për shembull, ekziston një port i veglave Qt dhe mbështet Unreal Engine 4 dhe Unit motorët e lojës, motori fizik Bullet). Përveç përpilimit të kodit në C/C++, projektet po zhvillohen veçmas për të siguruar lëshimin e përkthyesve dhe makinave virtuale në shfletues për gjuhët Lua, C#, Python, Ruby dhe Perl. Është gjithashtu e mundur të aplikohen frontende jo-Clang në LLVM, të disponueshme për gjuhë të tilla si Swift, Rust, D dhe Fortran.

Ndryshime të mëdha në Emscripten 3.0:

  • Biblioteka musl C e përdorur në emscripten është përditësuar në versionin 1.2.2 (versioni 2 është përdorur në degën Emscripten 1.1.15.x).
  • Një pjesë e funksioneve që u përdorën kryesisht në kuadër të projektit janë hequr nga biblioteka parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType, isStructuralTypeStructuralTpearts, getStructuralType FunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Në shabllonet shell.html dhe shell_minimal.html, dalja e mesazheve të gabimit që ndodhin gjatë funksionimit të emscripten dhe dalin nga aplikacioni nëpërmjet stderr, ndërrohet si parazgjedhje për të përdorur console.warn në vend të console.error.
  • U shtua aftësia për të specifikuar një kodim specifik teksti të përdorur në emrat e skedarëve. Kodimi mund të specifikohet në formën e një prapashtese kur kaloni emrin e skedarit, për shembull, "a.rsp.utf-8" ose "a.rsp.cp1251").

Burimi: opennet.ru

Shto një koment