Emscripten 3.0, C/C++-ra WebAssembly konpilatzailea eskuragarri

Emscripten 3.0 konpilatzailearen oharra argitaratu da, C/C++-n eta LLVM-n oinarritutako frontend-ak erabilgarri dauden beste hizkuntza batzuetan kodea konpilatzeko aukera ematen du maila baxuko bitarteko kode unibertsalean WebAssembly, gero JavaScript proiektuekin integratzeko, exekutatzen. web-arakatzaile batean, eta erabili Node.js-en edo wasm exekuzio-denbora erabiliz exekutatzen diren plataforma anitzeko aplikazio autonomoak sortzea. Proiektuaren kodea MIT lizentziapean banatzen da. Konpilatzaileak LLVM proiektuko garapenak erabiltzen ditu eta Binaryen liburutegia WebAssembly sortzeko eta optimizatzeko erabiltzen da.

Emscripten proiektuaren helburu nagusia kodea idatzita dagoen programazio-lengoaia edozein dela ere sarean kodea exekutatzea ahalbidetzen duen tresna sortzea da. Konpilatutako aplikazioek C eta C++ liburutegi estandarrei (libc, libcxx), C++ luzapenak, pthreads-en oinarritutako multithreading, POSIX APIak eta multimedia liburutegi askotara deiak erabil ditzakete. Web APIarekin eta JavaScript kodearekin integratzeko APIak bereiz eskaintzen dira.

Emscripten-ek SDL2 liburutegiaren irteera Canvas bidez igortzea onartzen du, eta OpenGL eta EGLrako laguntza ere eskaintzen du WebGL bidez, aplikazio grafikoak eta jokoak WebAssembly bihurtzeko aukera ematen duena (adibidez, Qt toolkit-aren ataka bat dago eta Unreal Engine onartzen du. 4 eta Unitateko joko-motorrak, Bullet motor fisikoa). C/C++-n kodea konpilatzeaz gain, proiektuak bereizita garatzen ari dira Lua, C#, Python, Ruby eta Perl lengoaietarako interpreteak eta makina birtualak abian jartzea ziurtatzeko. Clang ez diren frontend-ak ere aplika daitezke LLVM-n, Swift, Rust, D eta Fortran bezalako hizkuntzetarako eskuragarri.

Aldaketa nagusiak Emscripten 3.0-n:

  • Emscripten-en erabiltzen den musl C liburutegia 1.2.2 bertsiora eguneratu da (Emscripten 2.x adarrean 1.1.15 bertsioa erabili zen).
  • Proiektuan nagusiki erabiltzen ziren funtzioen zati bat parseTools.js liburutegitik kendu da: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isTtructuraSpetrulTypetParturalType, getStructuralTypeType. , isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • shell.html eta shell_minimal.html txantiloietan, emscripten-en funtzionamenduan gertatzen diren eta aplikazioak stderr bidez ateratzen dituen errore-mezuen irteera lehenespenez console.warn erabiltzeko console.error-en ordez.
  • Fitxategi-izenetan erabilitako testu-kodeketa zehatz bat zehazteko gaitasuna gehitu da. Kodeketa atzizki moduan zehaztu daiteke fitxategiaren izena pasatzean, adibidez, "a.rsp.utf-8" edo "a.rsp.cp1251").

Iturria: opennet.ru

Gehitu iruzkin berria