Emscripten 3.0, LLVM-i kasutava WebAssembly ehitamise tööriistaahel

Hiljuti teatati Emscripten 3.0 kompilaatori uue versiooni väljaandmisest, mida iseloomustab madalatasemelise universaalse vahevara WebAssembly abil koodi kompileerimine C / C ++ ja muudes keeltes, mille jaoks on saadaval LLVM-põhised esiservad.

Selle koostamise põhiülesanne on selle järgnev integreerimine JavaScripti projektidega, mida käivitatakse veebibrauseris ja mida kasutatakse Node'is. Js või luua platvormideüleseid eraldiseisvaid rakendusi, mis töötavad koos wasm käitusajaga.

Emscripteni kohta

Peamine eesmärk Emscripteni projekti arendamine on luua tööriist, mis võimaldab teil veebis koodi käivitada, olenemata programmeerimiskeelest, milles see on kirjutatud.

Kompileeritud rakendused saavad kasutada standardseid C- ja C++-teegikõnesid (libc, libcxx), C ++ laiendused, pthreads-põhine multithreading, POSIX API ja paljud multimeediumiteegid. API-liidesed veebi API ja JavaScripti koodiga integreerimiseks on saadaval eraldi.

Registreeri toetab SDL2 teegi väljundi voogesitust Canvase kauduning pakub WebGL-i kaudu ka OpenGL-i ja EGL-i tuge, võimaldades teil teisendada graafikarakendusi ja mänge WebAssembly-vormingusse.

Emscripteni abil saab WebAssemblysse kompileerida peaaegu iga kaasaskantava C või C ++ koodibaasiAlates suure jõudlusega mängudest, mis vajavad graafika renderdamist, helide esitamist ning failide laadimist ja töötlemist, kuni rakendusraamistikeni nagu Qt. Emscriptenit on juba kasutatud väga pika loendi reaalmaailma koodialuste teisendamiseks WebAssemblyks, sealhulgas kommertskoodibaasid, nagu Unreal Engine 4 ja Unity Engine.

Lisaks C / C ++ koodi kompileerimisele töötatakse eraldi välja projekte tagamaks, et Lua, C #, Pythoni, Ruby ja Perli tõlgid ja virtuaalmasinad käivituvad brauserites. Samuti on võimalik rakendada LLVM-ile mitte-Clangi liideseid, mis on saadaval sellistes keeltes nagu Swift, Rust, D ja Fortran.

Tuleb märkida, et algse käitusaja ja Emscripteni vahel on erinevusi, mis tähendab, et üldiselt eNaturaalses koodis on vaja teha mõned muudatused. Sellegipoolest peavad paljud rakendused muutma ainult seda, kuidas nad oma põhitsüklit määratlevad, ja muutma ka oma failikäsitlust, et kohandada brauseri / JavaScripti piiranguid.

Samuti on piiranguid, mis võivad muuta mõne koodi üleviimise lihtsamaks – lugege kaasaskantavuse juhiseid, et teha kindlaks, kus peate võib-olla rohkem vaeva nägema.

Emscripten 3.0 peamised uued funktsioonid

Selles esitletavas uues versioonis on emscriptenis kasutatav musl C teek värskendatud versioonile 1.2.2 (Emscripten 1.1.15.x harus kasutati versiooni 2).

ParseTools.js teegist eemaldati osa funktsioone, mida projektis peamiselt kasutatakse: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToEUpiletimeHex,CompiletitleT, IEE.piletiy.

Kuigi Mallides shell.html ja shell_minimal.html veateadete väljund mis toimuvad emscripteni operatsiooni ajal ja väljastatakse rakenduse stderri kaudu vaikimisi kasutatakse console.warn asemel console.error.

Samuti tuuakse seda esile lisas võimaluse 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").

Lõpuks, kui olete huvitatud Emscripteni kohta lisateabe saamiseks, võite tutvuda projekti üksikasjadega ametlik veebilehekülg.

Samamoodi saate tutvuda veebis olevate dokumentidega, kuidas kasutada Emscriptenit – viitesaiti, mida saame soovitada, on Mozilla arendaja veebisait: https://developer.mozilla.org.

Samuti on oluline mainida, et projekti koodi levitatakse MIT litsentsi all. Kompilaator kasutab LLVM projekti arendusi ning WebAssembly genereerimiseks ja optimeerimiseks kasutatakse Binaryeni teeki. Saate oma koodi kontrollida allikas GitHubis.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.