Emscripten 3.0 heye, berhevkarek C/C++ ya WebAssembly

Serbestberdana berhevkarê Emscripten 3.0 hate weşandin, ku destûrê dide te ku hûn kodê bi C/C++ û zimanên din ên ku pêşekên LLVM-ê ji bo koda navîn-asta nizm a gerdûnî hene WebAssembly berhev bikin, ji bo yekbûna paşê bi projeyên JavaScript re, xebitandin. di gerokek webê de, û di Node.js de bikar bînin an jî sepanên pir-platformê yên xweser ên ku bi karanîna wasm runtime dixebitin çêbikin. Koda projeyê di bin lîsansa MITê de tê belavkirin. Berhevkar pêşveçûnên ji projeya LLVM bikar tîne, û pirtûkxaneya Binaryen ji bo hilberandin û xweşbînkirina WebAssembly tê bikar anîn.

Armanca sereke ya projeya Emscripten ew e ku amûrek biafirîne ku destûrê dide te ku hûn kodê li ser Webê bicîh bikin bêyî ku zimanê bernamekirinê yê ku kod tê de hatî nivîsandin. Serlêdanên berhevkirî dikarin bang li pirtûkxaneyên standard ên C û C++ (libc, libcxx), pêvekên C++, pirzimanî-based pthreads, API-yên POSIX, û gelek pirtûkxaneyên multimedia bikar bînin. API-yên ji bo entegrasyona bi Web API û koda JavaScript-ê ji hev cihê têne peyda kirin.

Emscripten piştgirî dide weşana derketina pirtûkxaneya SDL2 bi Canvas, û di heman demê de piştgirî dide OpenGL û EGL bi navgîniya WebGL, ku destûrê dide te ku hûn serîlêdanên grafîkî û lîstikan veguherînin WebAssembly (mînak, portek amûrek Qt heye û Engine Unreal piştgirî dike. 4 û motorên lîstikê yên Yekîneyê, motora Bulletê ya fîzîkî). Digel berhevkirina kodê di C/C++ de, proje ji hev cihê têne pêşve xistin da ku di gerokan de ji bo zimanên Lua, C#, Python, Ruby û Perl destpêkirina wergêr û makîneyên virtual di gerokan de bicîh bikin. Di heman demê de gengaz e ku meriv pêşiyên ne-Clang li LLVM-ê jî bicîh bîne, ji bo zimanên wekî Swift, Rust, D û Fortran hene.

Guhertinên sereke di Emscripten 3.0 de:

  • Pirtûkxaneya musl C ya ku di emscripten de tê bikar anîn ji bo guhertoya 1.2.2 hate nûve kirin (guhertoya 2 di şaxê Emscripten 1.1.15.x de hate bikar anîn).
  • Beşek fonksiyonên ku bi giranî di nav projeyê de hatine bikar anîn ji pirtûkxaneya parseTools.js hatine rakirin: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType, isStructuralType, isStructuralTypeStructuralTypeStructuralType, ctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Di şablonên shell.html û shell_minimal.html de, derketina peyamên çewtiyê yên ku di dema xebitandina emscripten de çêdibin û ji hêla sepanê ve bi riya stderr têne derxistin, ji hêla xwerû ve tê guheztin ku li şûna console.error bikar bîne console.warn.
  • Kapasîteya diyarkirina kodkirina nivîsê ya taybetî ya ku di navên pelan de tê bikar anîn zêde kir. Dema ku navê pelê derbas dibe, kodkirin dikare di forma paşgirek de were destnîşan kirin, mînakî, "a.rsp.utf-8" an "a.rsp.cp1251").

Source: opennet.ru

Add a comment