Kei te waatea a Emscripten 3.0, he C/C++ ki te Kaihanga WebAssembly

Ko te tukunga o te Emscripten 3.0 compiler kua whakaputaina, ka taea e koe te whakahiato waehere i roto i te C/C ++ me etahi atu reo mo te LLVM-based frontends e waatea ana ki te waehere takawaenga taumata-iti o te ao WebAssembly, mo te whakauru i muri mai me nga kaupapa JavaScript, e rere ana. i roto i te pūtirotiro tukutuku, me te whakamahi i roto i te Node. js ranei te hanga tono tu-tahi-turanga-maha ka whakahaere ma te whakamahi i te wa whakahaere wasm. Ka tohatohahia te waehere kaupapa i raro i te raihana MIT. Ka whakamahia e te kaikohi nga whanaketanga mai i te kaupapa LLVM, ka whakamahia te whare pukapuka Binaryen mo te whakatipuranga WebAssembly me te arotautanga.

Ko te whainga matua o te kaupapa Emscripten ko te hanga i tetahi taputapu e taea ai e koe te mahi waehere i runga i te Tukutuku ahakoa te reo whakangao i tuhia ai te waehere. Ka taea e nga tono whakahiato te whakamahi waea ki nga whare pukapuka paerewa C me C++ (libc, libcxx), C++ toronga, miro maha-pthreading, POSIX API, me te maha o nga whare pukapuka rongorau. Ko nga API mo te whakauru ki te API Tukutuku me te waehere JavaScript ka whakaratohia motuhake.

E tautoko ana a Emscripten i te whakaputanga o te whare pukapuka SDL2 ma Canvas, me te tautoko hoki mo OpenGL me EGL ma te WebGL, e taea ai e koe te huri i nga tono whakairoiro me nga keemu ki te WebAssembly (hei tauira, he tauranga o te kete taputapu Qt me te tautoko i te Unreal Engine. 4 me nga miihini keemu Waehe, miihini Bullet tinana). I tua atu i te whakahiato waehere i C/C++, kei te hangaia motuhake nga kaupapa hei whakarite i te whakarewatanga o nga kaiwhakamaori me nga miihini mariko ki nga kaitirotiro mo nga reo Lua, C#, Python, Ruby me Perl. Ka taea hoki te tono i nga waahanga-kore-Clang ki te LLVM, e waatea ana mo nga reo penei i te Swift, Rust, D me Fortran.

Nga huringa nui i roto i te Emscripten 3.0:

  • Ko te whare pukapuka musl C e whakamahia ana i te emscripten kua whakahoutia ki te putanga 1.2.2 (i whakamahia te putanga 2 i te peka o Emscripten 1.1.15.x).
  • Ko tetahi waahanga o nga mahi i whakamahia i roto i te kaupapa kua tangohia mai i te whare pukapuka 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.
  • I roto i nga tauira shell.html me shell_minimal.html, ko te whakaputanga o nga karere hapa ka puta i te wa e mahi ana te emscripten me te whakaputanga e te tono ma te stderr ka huri taunoa ki te whakamahi console.warn hei utu mo te console.error.
  • Kua taapirihia te kaha ki te tautuhi i tetahi whakawaehere kuputuhi motuhake e whakamahia ana ki nga ingoa konae. Ka taea te tohu i te whakawaehere i roto i te ahua o te kumara ka tukuna te ingoa kōnae, hei tauira, "a.rsp.utf-8" ranei "a.rsp.cp1251").

Source: opennet.ru

Tāpiri i te kōrero