Emscripten 3.0, en byggeverktøykjede for WebAssembly ved bruk av LLVM

nylig utgivelsen av den nye versjonen av Emscripten 3.0-kompilatoren ble annonsert, som er kjennetegnet ved å tillate at kode kompileres i C/C++ og andre språk som LLVM-baserte grensesnitt er tilgjengelige for, i en universal mellomvare WebAssembly på lavt nivå.

Hovedfunksjonen til denne kompileringen er for dens påfølgende integrasjon med JavaScript-prosjekter, kjøres i en nettleser og bruk i Node. Js eller lag frittstående applikasjoner på tvers av plattformer som kjører med wasm runtime.

Om Emscripten

Hovedmålet utvikling av Emscripten-prosjektet er å lage et verktøy som lar deg kjøre kode på nettet, uavhengig av programmeringsspråket det er skrevet på.

Kompilerte applikasjoner kan bruke standard C- og C++-biblioteksanrop (libc, libcxx), C++-utvidelser, pthreads-basert multithreading, POSIX API og mange multimediebiblioteker. APIer for integrasjon med web-API og JavaScript-kode leveres separat.

Melde deg på støtter streaming av SDL2-bibliotekutgang via Canvas, og gir også støtte for OpenGL og EGL gjennom WebGL, slik at du kan konvertere grafikkapplikasjoner og spill til WebAssembly.

Praktisk talt enhver bærbar C- eller C++-kodebase kan kompileres til WebAssembly ved hjelp av EmscriptenFra spill med høy ytelse som trenger å gjengi grafikk, spille av lyder og laste og behandle filer, til applikasjonsrammeverk som Qt. Emscripten har allerede blitt brukt til å konvertere en veldig lang liste med virkelige kodebaser til WebAssembly, inkludert kommersielle kodebaser som Unreal Engine 4 og Unity Engine.

I tillegg til å kompilere C/C++-kode, utvikles prosjekter separat for å sikre at tolker og virtuelle maskiner for Lua, C #, Python, Ruby og Perl starter i nettleserne. Det er også mulig å bruke ikke-Clang-grensesnitt på LLVM tilgjengelig for språk som Swift, Rust, D og Fortran.

Det skal bemerkes at det er forskjeller mellom native runtime og Emscripten, som betyr at generelt f.eksDet er nødvendig å gjøre noen endringer i den opprinnelige koden. Når det er sagt, trenger mange applikasjoner bare å endre måten de definerer hovedsløyfen på og også endre filhåndteringen for å imøtekomme nettleser-/JavaScript-begrensninger.

Det er også begrensninger som kan gjøre noe kode enklere å migrere - les retningslinjene for portabilitet for å finne ut hvor du kan trenge å bruke mer innsats.

De viktigste nye funksjonene i Emscripten 3.0

I denne nye versjonen som presenteres, har musl C-biblioteket brukt i emscripten blitt oppdatert til versjon 1.2.2 (versjon 1.1.15 ble brukt i Emscripten 2.x-grenen).

Fra parseTools.js-biblioteket ble en del av funksjonene fjernet, som hovedsakelig brukes i prosjektet: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEyptime.Euctile

Mens I malene shell.html og shell_minimal.html, utdataene fra feilmeldingene som oppstår under emscripten-operasjonen og utstedt av applikasjonen gjennom stderr den endres som standard til å bruke console.warn i stedet for console.error.

Det er også fremhevet at lagt til muligheten til å spesifisere en spesifikk tekstkoding som brukes i filnavn. Koding kan spesifiseres som et suffiks når filnavnet sendes, for eksempel "a.rsp.utf-8" eller "a.rsp.cp1251").

Til slutt, hvis du er interessert i å lære mer om Emscripten, kan du se detaljene om prosjektet i sin offesiell nettside.

Og på samme måte kan du konsultere dokumentasjon på nettet om hvordan du bruker Emscripten, en referanseside som vi kan anbefale er Mozilla-utviklernettstedet: https://developer.mozilla.org.

Det er også viktig å nevne at prosjektkoden er distribuert under MIT-lisensen. Kompilatoren bruker utviklinger fra LLVM-prosjektet og Binaryen-biblioteket brukes til å generere WebAssembly og optimalisering. Du kan sjekke koden din kilde på GitHub.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.