Saadaval on Emscripten 3.0, C/C++ kuni WebAssembly kompilaator

Avaldatud on Emscripten 3.0 kompilaatori väljalase, mis võimaldab teil kompileerida koodi C/C++ ja teistes keeltes, mille jaoks on saadaval LLVM-põhised kasutajaliidesed, universaalseks madalatasemeliseks vahepealseks koodiks WebAssembly, mida saab hiljem JavaScripti projektidega integreerida. veebibrauseris ja kasutada rakenduses Node.js või luua eraldiseisvaid mitme platvormi rakendusi, mis töötavad Wasm Runtime abil. Projekti koodi levitatakse MIT litsentsi all. Kompilaator kasutab LLVM projekti arendusi ning WebAssembly genereerimiseks ja optimeerimiseks kasutatakse Binaryeni teeki.

Emscripteni projekti põhieesmärk on luua tööriist, mis võimaldab veebis koodi käivitada sõltumata programmeerimiskeelest, milles kood on kirjutatud. Kompileeritud rakendused saavad kasutada standardsete C- ja C++-teekide (libc, libcxx), C++-laiendite, pthread-põhiste mitmelõimede, POSIX-i API-de ja paljude multimeediumiteekide kõnesid. Veebi API ja JavaScripti koodiga integreerimiseks mõeldud API-d on saadaval eraldi.

Emscripten toetab SDL2 teegi väljundi edastamist Canvase kaudu ning toetab ka OpenGL-i ja EGL-i WebGL-i kaudu, mis võimaldab teisendada graafilisi rakendusi ja mänge WebAssembly-sse (näiteks on olemas Qt tööriistakomplekti port ja see toetab Unreal Engine'i 4 ja Unit mängumootorid, füüsiline Bullet mootor). Lisaks koodide koostamisele C/C++ keeles arendatakse eraldi projekte, et tagada Lua, C#, Python, Ruby ja Perl keelte brauserites tõlkide ja virtuaalmasinate käivitamine. LLVM-ile on võimalik rakendada ka mitte-Clangi esiserve, mis on saadaval sellistes keeltes nagu Swift, Rust, D ja Fortran.

Peamised muudatused versioonis Emscripten 3.0:

  • Emscriptenis kasutatav musl C teek on uuendatud versioonile 1.2.2 (Emscripten 2.x harus kasutati versiooni 1.1.15).
  • Osa peamiselt projektis kasutatud funktsioonidest on parseTools.js teegist eemaldatud: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralTypeF, isStructuralType, isStructParDParype. , isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Mallides shell.html ja shell_minimal.html lülitatakse emscripteni töö käigus ilmnevate ja rakenduse poolt stderri kaudu väljastatavate veateadete väljund vaikimisi console.error asemel console.warn.
  • Lisatud on võimalus määrata failinimedes kasutatav konkreetne tekstikodeering. Kodeeringu saab määrata failinime edastamisel järelliitena, näiteks "a.rsp.utf-8" või "a.rsp.cp1251").

Allikas: opennet.ru

Lisa kommentaar