Emscripten 3.0, WebAssemblyn koontityökaluketju LLVM:ää käyttäen

äskettäin Emscripten 3.0 -kääntäjän uuden version julkaisu julkistettiin, jolle on ominaista koodin kääntäminen C / C ++ -kielellä ja muilla kielillä, joille LLVM-pohjaiset käyttöliittymät ovat saatavilla, matalan tason yleisessä väliohjelmistossa WebAssembly.

Tämän kokoelman päätehtävä on sen myöhempää integrointia JavaScript-projekteihin, jotka suoritetaan verkkoselaimessa ja käytetään Nodessa. Js tai luoda monialustaisia ​​itsenäisiä sovelluksia, jotka toimivat wasm-ajoajan kanssa.

Tietoja Emscriptenistä

Päätavoite Emscripten-projektin kehittäminen on luoda työkalu, jonka avulla voit ajaa koodia verkossa, riippumatta ohjelmointikielestä, jolla se on kirjoitettu.

Käännetyt sovellukset voivat käyttää tavallisia C- ja C++-kirjastokutsuja (libc, libcxx), C ++ -laajennukset, pthreads-pohjainen monisäikeisyys, POSIX API ja monet multimediakirjastot. Verkkosovellusliittymän ja JavaScript-koodin kanssa integroitavat sovellusliittymät toimitetaan erikseen.

Kirjaudu tukee SDL2-kirjaston ulostulon suoratoistoa Canvasin kautta, ja tarjoaa myös OpenGL- ja EGL-tuen WebGL:n kautta, jolloin voit muuntaa grafiikkasovelluksia ja pelejä WebAssemblyksi.

Käytännössä mikä tahansa kannettava C- tai C++-koodikanta voidaan kääntää WebAssemblyksi Emscriptenin avullaSuorituskykyisistä peleistä, joiden täytyy renderöidä grafiikkaa, toistaa ääniä sekä ladata ja käsitellä tiedostoja, sovelluskehyksiin, kuten Qt. Emscripteniä on jo käytetty muuntamaan erittäin pitkä luettelo todellisista koodikannoista WebAssemblyksi, mukaan lukien kaupalliset koodikannat, kuten Unreal Engine 4 ja Unity Engine.

C / C ++ -koodin kääntämisen lisäksi projekteja kehitetään erikseen sen varmistamiseksi, että Luan, C #:n, Pythonin, Rubyn ja Perlin tulkit ja virtuaalikoneet käynnistyvät selaimissa. On myös mahdollista käyttää muita kuin Clang-rajapintoja LLVM:ään, joka on saatavana sellaisille kielille kuin Swift, Rust, D ja Fortran.

On huomattava, että alkuperäisen suoritusajan ja Emscriptenin välillä on eroja, mikä tarkoittaa, että yleisesti eAlkuperäiseen koodiin on tehtävä joitain muutoksia. Monien sovellusten tarvitsee kuitenkin vain muuttaa tapaa, jolla ne määrittelevät pääsilmukan, ja myös muokata tiedostojen käsittelyä selaimen/JavaScriptin rajoitusten mukaiseksi.

On myös rajoituksia, jotka voivat helpottaa joidenkin koodien siirtoa - lue siirrettävyysohjeet selvittääksesi, missä sinun on ehkä käytettävä enemmän vaivaa.

Emscripten 3.0:n tärkeimmät uudet ominaisuudet

Tässä esitellyssä uudessa versiossa emscriptenissä käytetty musl C -kirjasto on päivitetty versioon 1.2.2 (versiota 1.1.15 käytettiin Emscripten 2.x -haarassa).

ParseTools.js-kirjastosta poistettiin osa funktioista, joita käytetään pääasiassa projektissa: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType,CompanyypeTpiletipe,CompanyypeTpiletipe,CompiletymeTpiletile, IEEEU.

Vaikka shell.html- ja shell_minimal.html-malleissa virheilmoitusten tulos jotka tapahtuvat emscripten-toiminnon aikana ja jotka sovellus antaa stderrin kautta se muutetaan oletusarvoisesti käyttämään console.warn eikä console.error.

Se on myös korostettu 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").

Lopuksi, jos olet kiinnostunut tietämään lisää siitä Emscriptenistä, voit tutustua projektin yksityiskohtiin siinä virallinen nettisivu.

Ja samalla tavalla voit tutustua Emscriptenin käyttöön verkossa oleviin dokumentteihin. Voimme suositella viitesivustoa Mozillan kehittäjäsivustolle: https://developer.mozilla.org.

On myös tärkeää mainita, että projektikoodia jaetaan MIT-lisenssillä. Kääntäjä käyttää LLVM-projektin kehitystä ja Binaryen-kirjastoa käytetään WebAssemblyn luomiseen ja optimointiin. Voit tarkistaa koodisi lähde GitHubissa.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.