I-Emscripten 3.0 iyatholakala, i-C/C++ eya ku-WebAssembly compiler

Ukukhishwa kwe-Emscripten 3.0 compiler kushicilelwe, okukuvumela ukuthi uhlanganise ikhodi nge-C/C++ nezinye izilimi lapho okusekelwe khona kwe-LLVM kutholakala kukhodi emaphakathi yendawo yonke yezinga eliphansi, i-WebAssembly, ukuze ihlanganiswe namaphrojekthi we-JavaScript, asebenzayo. esipheqululini sewebhu, futhi usebenzise ku-Node js noma udale izinhlelo zokusebenza ezizimele zodwa zezingxenyekazi eziningi ezisebenzisa isikhathi sokusebenza se-wasm. Ikhodi yephrojekthi isatshalaliswa ngaphansi kwelayisensi ye-MIT. Umhlanganisi usebenzisa intuthuko evela kuphrojekthi ye-LLVM, futhi umtapo wezincwadi we-Binaryen usetshenziselwa ukukhiqiza nokuthuthukisa i-WebAssembly.

Umgomo oyinhloko wephrojekthi ye-Emscripten uwukwenza ithuluzi elikuvumela ukuthi wenze ikhodi kuwebhu ngaphandle kolimi lokuhlela okubhalwe ngalo ikhodi. Izinhlelo zokusebenza ezihlanganisiwe zingasebenzisa izingcingo eziya kumalabhulali ajwayelekile e-C kanye ne-C++ (libc, libcxx), izandiso ze-C++, i-pthreads-based multithreading, ama-POSIX APIs, namalabhulali amaningi we-multimedia. Ama-API okuhlanganiswa ne-Web API kanye nekhodi ye-JavaScript anikezwa ngokuhlukene.

I-Emscripten isekela ukusakaza okuphumayo komtapo wezincwadi we-SDL2 ngeCanvas, futhi ihlinzeka ngosekelo lwe-OpenGL ne-EGL nge-WebGL, ekuvumela ukuthi uguqule izinhlelo zokusebenza zesithombe nemidlalo ibe yi-WebAssembly (ngokwesibonelo, kunechweba lekhithi yamathuluzi ye-Qt futhi isekela i-Unreal Engine 4 kanye nezinjini zomdlalo weyunithi, injini yeBullet ebonakalayo). Ngokungeziwe ekuhlanganiseni ikhodi ku-C/C++, amaphrojekthi athuthukiswa ngokuhlukana ukuze kuqinisekiswe ukwethulwa kotolika nemishini ebonakalayo kuziphequluli zezilimi zesiLua, C#, Python, Ruby and Perl. Kungenzeka futhi ukusebenzisa ama-frontend angewona ama-Clang ku-LLVM, etholakala ngezilimi ezifana ne-Swift, Rust, D ne-Fortran.

Izinguquko ezinkulu ku-Emscripten 3.0:

  • Umtapo wezincwadi we-musl C osetshenziswe ku-emscripten ubuyekezwe waba yinguqulo 1.2.2 (inguqulo 2 isetshenziswe egatsheni le-Emscripten 1.1.15.x).
  • Ingxenye yemisebenzi ebisetshenziswa kakhulu ngaphakathi kwephrojekthi ikhishiwe kumtapo wezincwadi we-parseTools.js: ukususaPointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralType getStructuralTypertsf, getStructuralTypertsf, GetStructuralTypertsf, GetStructuralTypertsf. Uhlobo, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Kuzifanekiso ze-shell.html ne-shell_minimal.html, okukhiphayo kwemilayezo yephutha eyenzeka ngesikhathi sokusebenza kwe-emscripten futhi ekhishwa uhlelo lokusebenza nge-stderr ishintshwa ngokuzenzakalelayo ukuze kusetshenziswe i-console.warn esikhundleni se-console.error.
  • Kwengezwe ikhono lokucacisa umbhalo othile wombhalo wekhodi osetshenziswa emagameni wefayela. Umbhalo wekhodi ungacaciswa ngendlela yesijobelelo lapho kudluliswa igama lefayela, isibonelo, "a.rsp.utf-8" noma "a.rsp.cp1251").

Source: opennet.ru

Engeza amazwana