Emscripten 3.0, C/C++ - WebAssembly-kääntäjä saatavilla

Emscripten 3.0 -kääntäjän julkaisu on julkaistu, jonka avulla voit kääntää koodia C/C++- ja muilla kielillä, joille LLVM-pohjaiset käyttöliittymät ovat saatavilla, yleiseksi matalan tason keskitason koodiksi WebAssembly, jota voidaan myöhemmin integroida JavaScript-projekteihin. web-selaimessa ja käyttää Node.js:ssä tai luoda erillisiä usean alustan sovelluksia, jotka toimivat wasm runtimella. Projektikoodia jaetaan MIT-lisenssillä. Kääntäjä käyttää LLVM-projektin kehitystä, ja Binaryen-kirjastoa käytetään WebAssemblyn luomiseen ja optimointiin.

Emscripten-projektin päätavoitteena on luoda työkalu, jonka avulla voit suorittaa koodia verkossa riippumatta siitä, millä ohjelmointikielellä koodi on kirjoitettu. Käännetyt sovellukset voivat käyttää kutsuja tavallisiin C- ja C++-kirjastoihin (libc, libcxx), C++-laajennuksiin, pthreads-pohjaiseen monisäikeistykseen, POSIX-sovellusliittymiin ja moniin multimediakirjastoihin. Verkkosovellusliittymän ja JavaScript-koodin kanssa integroitavat sovellusliittymät toimitetaan erikseen.

Emscripten tukee SDL2-kirjaston lähdön lähettämistä Canvasin kautta, ja tukee myös OpenGL:ää ja EGL:ää WebGL:n kautta, jonka avulla voit muuntaa graafisia sovelluksia ja pelejä WebAssemblyksi (esimerkiksi Qt-työkalupakin portti tukee Unreal Engineä 4 ja Unit pelimoottorit, fyysinen Bullet engine). C/C++-koodin kääntämisen lisäksi kehitetään erikseen projekteja, joilla varmistetaan tulkkien ja virtuaalikoneiden käynnistäminen selaimissa Lua-, C#-, Python-, Ruby- ja Perl-kielille. On myös mahdollista käyttää ei-Clang-käyttöliittymää LLVM:ään, joka on saatavana kielille, kuten Swift, Rust, D ja Fortran.

Suuret muutokset Emscripten 3.0:ssa:

  • Emscriptenissä käytetty musl C -kirjasto on päivitetty versioon 1.2.2 (versiota 2 käytettiin Emscripten 1.1.15.x -haarassa).
  • Osa projektissa pääasiassa käytetyistä funktioista on poistettu parseTools.js-kirjastosta: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralTypeF isStructParDParype, isStructuralType , isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Shell.html- ja shell_minimal.html-malleissa emscriptenin toiminnan aikana ilmenevien ja sovelluksen stderrin kautta tuottamien virheilmoitusten tuloste on oletusarvoisesti vaihdettu käyttämään console.warn-tilaa console.errorin sijaan.
  • Lisätty mahdollisuus määrittää tietty tekstikoodaus, jota käytetään tiedostojen nimissä. Koodaus voidaan määrittää jälkiliitteenä tiedoston nimeä välitettäessä, esimerkiksi "a.rsp.utf-8" tai "a.rsp.cp1251").

Lähde: opennet.ru

Lisää kommentti