Është publikuar versioni i ri i mjeteve Emscripten 6.0, i cili lejon kompilimin e kodit në C/C++ dhe gjuhë të tjera për të cilat ekzistojnë frontend-e të bazuara në LLVM, në një ndërmjetësim universal të kodit të ulët WebAssembly. Rezultati i marrë mund të përdoret për integrim me projektet JavaScript, për të ekzekutuar në shfletuesin web, përdorimin në Node.js ose për krijimin e aplikacioneve të veçanta multi-platformë që ekzekutohen me ndihmën e wasm runtime. Kodi i projektit shpërndahet nën licencën MIT. Në kompilator përdoren materiale të projektit LLVM, ndërsa për gjenerimin e WebAssembly dhe optimizimin angazhohet biblioteka Binaryen.
Qëllimi kryesor i Emscripten është krijimi i një mjeti që lejon ekzekutimin e kodit në Web pavarësisht nga gjuha e programimit në të cilën ky kod është shkruar fillimisht. Në aplikacionet e komiluara mund të përdoren thirrje të bibliotekave standarde C dhe C++ (libc, libcxx), zgjerime C++, multithreading të bazuar në pthreads, API POSIX dhe shumë biblioteka multimediale. Ekspertizë ad hoc ofrohet për integrimin me API-të e Web dhe kodin në JavaScript.
Emscripten mbështet përkthimin e daljes së bibliotekës SDL2 përmes Canvas-it, si dhe implementon mbështetje për OpenGL dhe EGL përmes API-së WebGL, duke lejuar transformimin në WebAssembly të aplikacioneve grafike dhe lojërave (për shembull, ekziston një port i toolkit-it Qt, dhe mbështeten motorët e lojërave Unreal Engine dhe Unity, si dhe motoori i simulimit të proceseve fizike Bullet).
Përveç kompilimit të kodit në C/C++, projekti për të ekzekutuar interpretuese për shfletues po zhvillohet gjithashtu për gjuhët Lua, C#, Python, Ruby dhe Perl. Për më tepër, është e mundur të përdoren frontend të LLVM, të ndryshme nga Clang, për shembuj, frontend për gjuhët si Swift, Rust, D dhe Fortran. makinave virtuale для языков Lua, C#, Python, Ruby и Perl. Кроме того, возможно применение фронтэндов к LLVM, отличных от Clang, например, фронтэндов для языков, как Swift, Rust, D и Fortran.
Caktimi i numrit të versionit 6.0 lidhet me ndryshime që shkelin përputhshmërinë. Ndryshimet kryesore në Emscripten 6.0:
- Versionet minimale të motorëve të shfletuesve, në të cilët mund të ekzekutohet kodi i krijuar, janë rritur: Chrome 74 -> 85, Firefox 68 -> 79 dhe Safari 12.2 -> 14.1. Ky ndryshim ka lejuar aktivizimin automatik të zgjerimeve WebAssembly për importin dhe eksportimin e variablave globalë të ndryshueshëm, si dhe rritjen e saktësisë së numrave me shenjë dhe vlerë.
- Gjatë ngarkimeve streaming duke përdorur operacionin Fetch, madhësia e bllokut të ngarkuar tani është e kufizuar në 8 MB për të parandaluar ngarkimin në memorie të menjëhershme të të gjithë përmbajtjes nga skedarët e mëdhenj.
- Janë azhurnuar versionet musl libc 1.2.6, libpng 1.6.58 dhe google-closure-compiler 20260429.0.0.
- Është implementuar flagu i kompajluesit "-m64", i cili është i ngjashëm me flagët "-sMEMORY64" dhe "--target=wasm64".
Fusha PThread.runningWorkers është hequr nga objekti PThread. - Funksioni pause() tani kthen 0 në vend të EINTR.
- Në platformën Windows, në vend të skedarit bat (emcc.bat) për të nisur Emscripten, është ofruar një skedar exe (emcc.exe).
- Është publikuar versioni i instrumenteve Emscripten 6.0, i cili mundëson kompajtimin e kodit në C/C++ dhe gjuhë të tjera për të cilat ekzistojnë frontend-e të bazuara në LLVM, në kod të universallizuar të nivelit të ulët WebAssembly. Rezultati i marrë mund të përdoret për integrim me projektet JavaScript, për ta ekzekutuar në shfletuesin web, përdorim në Node.js ose për të krijuar aplikacione të veçanta shumë-platformës që ekzekutohen me ndihmën e wasm runtime. Kodi i projektit shperndahet nën licencën
Burimi: opennet.ru
