Emscripten 3.0, C/C++ i grynhoydd WebAssembly ar gael

Mae rhyddhau'r casglwr Emscripten 3.0 wedi'i gyhoeddi, sy'n eich galluogi i lunio cod yn C/C++ ac ieithoedd eraill y mae blaenwynebau LLVM ar gael ar eu cyfer i mewn i god canolradd lefel isel cyffredinol WebAssembly, i'w integreiddio wedyn Γ’ phrosiectau JavaScript, yn rhedeg mewn porwr gwe, a'i ddefnyddio yn Node.js neu greu rhaglenni aml-lwyfan annibynnol sy'n rhedeg gan ddefnyddio amser rhedeg wasm. Mae cod y prosiect yn cael ei ddosbarthu o dan y drwydded MIT. Mae'r casglwr yn defnyddio datblygiadau o'r prosiect LLVM, a defnyddir llyfrgell Binaryen ar gyfer cynhyrchu ac optimeiddio WebCynulliad.

Prif nod y prosiect Emscripten yw creu offeryn sy'n eich galluogi i weithredu cod ar y We waeth ym mha iaith raglennu y mae'r cod wedi'i ysgrifennu. Gall cymwysiadau wedi'u llunio ddefnyddio galwadau i lyfrgelloedd safonol C a C ++ (libc, libcxx), estyniadau C ++, aml-edafu seiliedig ar ptreads, POSIX APIs, a llawer o lyfrgelloedd amlgyfrwng. Darperir APIs ar gyfer integreiddio Γ’ Web API a chod JavaScript ar wahΓ’n.

Mae Emscripten yn cefnogi darlledu allbwn y llyfrgell SDL2 trwy Canvas, ac mae hefyd yn darparu cefnogaeth i OpenGL ac EGL trwy WebGL, sy'n eich galluogi i drosi cymwysiadau a gemau graffigol i WebAssembly (er enghraifft, mae yna borthladd o'r pecyn cymorth Qt ac mae'n cefnogi Unreal Engine Peiriannau gΓͺm 4 ac Uned, injan Bullet corfforol). Yn ogystal Γ’ llunio cod yn C/C++, mae prosiectau'n cael eu datblygu ar wahΓ’n i sicrhau lansiad cyfieithwyr ar y pryd a pheiriannau rhithwir mewn porwyr ar gyfer yr ieithoedd Lua, C#, Python, Ruby a Perl. Mae hefyd yn bosibl cymhwyso blaenwynebau nad ydynt yn Clang i LLVM, sydd ar gael ar gyfer ieithoedd fel Swift, Rust, D a Fortran.

Newidiadau mawr yn Emscripten 3.0:

  • Mae'r llyfrgell musl C a ddefnyddir yn emscripten wedi'i diweddaru i fersiwn 1.2.2 (defnyddiwyd fersiwn 2 yng nghangen Emscripten 1.1.15.x).
  • Mae cyfran o swyddogaethau a ddefnyddiwyd yn bennaf o fewn y prosiect wedi'u tynnu o'r llyfrgell parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralType, isVoidType, getStructuralType,StructuralType getStructuralType siblyFunctionMath, ywMath Swyddogaeth, getReturnMath, splitTo kenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Yn y templedi shell.html a shell_minimal.html, mae allbwn negeseuon gwall sy'n digwydd yn ystod gweithrediad emscripten ac sy'n cael eu hallbynnu gan y cymhwysiad trwy stderr yn cael ei newid yn ddiofyn i ddefnyddio console.warn yn lle console.error.
  • Ychwanegwyd y gallu i nodi amgodio testun penodol a ddefnyddir mewn enwau ffeiliau. Gellir nodi'r amgodio ar ffurf Γ΄l-ddodiad wrth basio enw'r ffeil, er enghraifft, "a.rsp.utf-8" neu "a.rsp.cp1251").

Ffynhonnell: opennet.ru

Ychwanegu sylw