Emscripten 3.0, kūrimo įrankių grandinė, skirta WebAssembly naudojant LLVM

Neseniai buvo paskelbta apie naujos Emscripten 3.0 kompiliatoriaus versijos išleidimą, kuri pasižymi tuo, kad leidžia kodą kompiliuoti C / C ++ ir kitomis kalbomis, kurioms yra prieinamos LLVM pagrindu veikiančios sąsajos, žemo lygio universalioje tarpinėje programinėje įrangoje WebAssembly.

Pagrindinė šio rinkinio funkcija yra vėlesnė jo integracija su „JavaScript“ projektais, paleidimas žiniatinklio naršyklėje ir naudojimas „Node“. Js arba sukurti atskiras kelių platformų programas, veikiančias su „Wasm“ vykdymo laiku.

Apie Emscripten

Pagrindinis tikslas Emscripten projekto plėtra yra sukurti įrankį, leidžiantį paleisti kodą internete, nepriklausomai nuo programavimo kalbos, kuria jis parašytas.

Sukompiliuotos programos gali naudoti standartinius C ir C ++ bibliotekos skambučius (libc, libcxx), C ++ plėtiniai, pthreads pagrįstas kelių gijų, POSIX API ir daug daugialypės terpės bibliotekų. API, skirtos integracijai su žiniatinklio API ir „JavaScript“ kodu, pateikiamos atskirai.

Registruotis palaiko SDL2 bibliotekos išvesties srautinį perdavimą per Canvas, taip pat teikia OpenGL ir EGL palaikymą per WebGL, leidžiantį konvertuoti grafikos programas ir žaidimus į WebAssembly.

Beveik bet kokia nešiojama C arba C ++ kodo bazė gali būti sukompiliuota į WebAssembly naudojant EmscriptenNuo didelio našumo žaidimų, kuriems reikia pateikti grafiką, leisti garsus ir įkelti bei apdoroti failus, iki programų sistemų, tokių kaip Qt. „Emscripten“ jau buvo naudojamas norint konvertuoti labai ilgą realaus pasaulio kodų bazių sąrašą į „WebAssembly“, įskaitant komercines kodų bazes, tokias kaip „Unreal Engine 4“ ir „Unity Engine“.

Be C / C ++ kodo sudarymo, projektai kuriami atskirai, siekiant užtikrinti, kad Lua, C #, Python, Ruby ir Perl interpretatoriai ir virtualios mašinos būtų paleistos naršyklėse. Taip pat galima pritaikyti ne „Clang“ sąsajas LLVM, prieinamas tokiomis kalbomis kaip „Swift“, „Rust“, „D“ ir „Fortran“.

Pažymėtina, kad yra skirtumų tarp vietinio vykdymo laiko ir „Emscripten“, o tai reiškia, kad apskritai elBūtina atlikti kai kuriuos vietinio kodo pakeitimus. Atsižvelgiant į tai, daugeliui programų reikės pakeisti tik pagrindinio ciklo apibrėžimo būdą ir taip pat modifikuoti failų tvarkymą, kad atitiktų naršyklės / JavaScript apribojimus.

Taip pat yra apribojimų, kurie gali palengvinti tam tikro kodo perkėlimą – perskaitykite perkeliamumo gaires, kad nustatytumėte, kur jums gali tekti skirti daugiau pastangų.

Pagrindinės naujos Emscripten 3.0 funkcijos

Šioje pateiktoje naujoje versijoje emscripten naudojama musl C biblioteka buvo atnaujinta iki 1.2.2 versijos (1.1.15 versija buvo naudojama Emscripten 2.x šakoje).

Iš parseTools.js bibliotekos buvo pašalinta dalis funkcijų, kurios daugiausia naudojamos projekte: RemovePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType,CommentiTirpeT,Compiletin.meHex,IEE.Tpiletiy.

O Shell.html ir shell_minimal.html šablonuose klaidų pranešimų išvestis kurios atsiranda atliekant emscripten operaciją ir išduodamos programos per stderr pagal numatytuosius nustatymus pakeičiama naudoti console.warn vietoj console.error.

Taip pat pabrėžiama pridėta galimybė nurodyti konkrečią teksto kodavimą, naudojamą failų pavadinimuose. Kodavimas gali būti nurodytas kaip priesaga perduodant failo pavadinimą, pvz., „a.rsp.utf-8“ arba „a.rsp.cp1251“).

Galiausiai, jei norite sužinoti daugiau apie Emscripten, galite susipažinti su projekto informacija Oficiali svetainė.

Taip pat galite susipažinti su dokumentais žiniatinklyje, kaip naudotis Emscripten, nuoroda, kurią galime rekomenduoti, yra „Mozilla“ kūrėjų svetainė: https://developer.mozilla.org.

Taip pat svarbu paminėti, kad projekto kodas platinamas pagal MIT licenciją. Kompiliatorius naudoja LLVM projekto patobulinimus, o Binaryen biblioteka naudojama WebAssembly generavimui ir optimizavimui. Galite patikrinti savo kodą šaltinis GitHub.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.