Emscripten 3.0 sayogi, C / C ++ pikeun kompiler WebAssembly

Pelepasan kompiler Emscripten 3.0 parantos diterbitkeun, ngamungkinkeun anjeun pikeun nyusun kode dina C/C ++ sareng basa-basa sanés anu frontends basis LLVM sayogi kana kode panengah tingkat rendah universal WebAssembly, pikeun integrasi salajengna sareng proyék JavaScript, ngajalankeun. dina browser wéb, sareng dianggo dina Node.js atanapi nyiptakeun aplikasi multi-platform mandiri anu dijalankeun nganggo wasm runtime. Kodeu proyék disebarkeun dina lisénsi MIT. Kompiler ngagunakeun kamajuan tina proyék LLVM, sareng perpustakaan Binaryen dianggo pikeun ngahasilkeun WebAssembly sareng optimasi.

Tujuan utama proyék Emscripten nyaéta nyiptakeun alat anu ngamungkinkeun anjeun ngaéksekusi kode dina Wéb henteu paduli basa pamrograman dimana kodeu ditulis. Aplikasi anu disusun tiasa nganggo telepon ka perpustakaan standar C sareng C ++ (libc, libcxx), ekstensi C++, multithreading basis pthread, API POSIX, sareng seueur perpustakaan multimedia. API pikeun integrasi jeung Web API jeung kode JavaScript disadiakeun misah.

Emscripten ngarojong siaran kaluaran perpustakaan SDL2 via kanvas, sarta ogé nyadiakeun rojongan pikeun OpenGL na EGL via WebGL, nu ngidinan Anjeun pikeun ngarobah aplikasi grafis jeung kaulinan ka WebAssembly (Contona, aya port tina toolkit Qt tur ngarojong Unreal Engine. 4 jeung mesin Unit kaulinan, mesin Bullet fisik). Salian kompilasi kode dina C/C ++, proyék-proyék dikembangkeun sacara misah pikeun ngaktifkeun juru basa sareng mesin virtual dina panyungsi pikeun basa Lua, C#, Python, Ruby sareng Perl. Éta ogé mungkin pikeun nerapkeun frontends non-Clang ka LLVM, sayogi pikeun basa sapertos Swift, Rust, D sareng Fortran.

Parobihan utama dina Emscripten 3.0:

  • Musl C perpustakaan dipaké dina emscripten geus diropéa pikeun versi 1.2.2 (versi 2 ieu dipaké dina cabang Emscripten 1.1.15.x).
  • Bagian tina fungsi anu utamana dipaké dina proyék geus dihapus tina perpustakaan parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralType, isStructuralType getStructuralType. unctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Dina shell.html jeung shell_minimal.html témplat, kaluaran pesen kasalahan anu lumangsung salila operasi emscripten sarta kaluaran ku aplikasi via stderr switched sacara standar pikeun pamakéan console.warn tinimbang console.error.
  • Ditambahkeun kamampuhan pikeun nangtukeun hiji encoding téks husus dipaké dina ngaran file. Encoding tiasa ditetepkeun dina bentuk ahiran nalika ngalangkungan nami file, contona, "a.rsp.utf-8" atanapi "a.rsp.cp1251").

sumber: opennet.ru

Tambahkeun komentar