Emscripten 3.0, C/C++ til WebAssembly compiler tilgængelig

Udgivelsen af ​​Emscripten 3.0-kompileren er blevet offentliggjort, hvilket giver dig mulighed for at kompilere kode i C/C++ og andre sprog, for hvilke LLVM-baserede frontends er tilgængelige i universel lav-niveau mellemkode WebAssembly, til efterfølgende integration med JavaScript-projekter, der kører i en webbrowser, og brug i Node. js eller oprettelse af selvstændige multi-platform applikationer, der kører ved hjælp af wasm runtime. Projektkoden distribueres under MIT-licensen. Compileren bruger udviklinger fra LLVM-projektet, og Binaryen-biblioteket bruges til WebAssembly-generering og -optimering.

Hovedmålet med Emscripten-projektet er at skabe et værktøj, der giver dig mulighed for at eksekvere kode på nettet uanset hvilket programmeringssprog koden er skrevet på. Kompilerede applikationer kan bruge kald til standard C- og C++-biblioteker (libc, libcxx), C++-udvidelser, pthreads-baseret multithreading, POSIX API'er og mange multimediebiblioteker. API'er til integration med Web API og JavaScript-kode leveres separat.

Emscripten understøtter oversættelse af SDL2-biblioteksoutput via Canvas og understøtter også OpenGL og EGL via WebGL, hvilket muliggør konvertering af grafikapplikationer og spil til WebAssembly (for eksempel er der en portering af Qt-værktøjssættet og understøttelse af Unreal Engine 4- og Unit-spilmotorerne samt Bullet-fysikmotoren). Ud over at kompilere C/C++-kode udvikles separate projekter for at muliggøre udførelse af fortolkere i browsere og ... virtuel maskine Til Lua, C#, Python, Ruby og Perl. Det er også muligt at bruge andre LLVM-frontends end Clang, som er tilgængelige for sprog som Swift, Rust, D og Fortran.

Større ændringer i Emscripten 3.0:

  • Musl C-biblioteket brugt i emscripten er blevet opdateret til version 1.2.2 (version 2 blev brugt i Emscripten 1.1.15.x-grenen).
  • En del af funktioner, der hovedsageligt blev brugt i projektet, er blevet fjernet fra parseTools.js-biblioteket: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralParts,isPocturalParts,isPocturalParts,isPoctural ssiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • I skabelonerne shell.html og shell_minimal.html skiftes outputtet af fejlmeddelelser, der opstår under driften af ​​emscripten og udlæses af applikationen via stderr, som standard til at bruge console.warn i stedet for console.error.
  • Tilføjet muligheden for at angive en specifik tekstkodning, der bruges i filnavne. Kodningen kan angives i form af et suffiks, når filnavnet sendes, for eksempel "a.rsp.utf-8" eller "a.rsp.cp1251").

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster