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 udsendelse af output fra SDL2-biblioteket via Canvas og giver også support til OpenGL og EGL via WebGL, som giver dig mulighed for at konvertere grafiske applikationer og spil til WebAssembly (der er f.eks. en port til Qt-værktøjssættet og understøtter Unreal Engine 4 og Unit-spilmotorer, fysisk Bullet-motor). Udover at kompilere kode i C/C++, udvikles projekter separat for at sikre lanceringen af ​​tolke og virtuelle maskiner i browsere til sprogene Lua, C#, Python, Ruby og Perl. Det er også muligt at anvende non-Clang-frontends til LLVM, 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

Tilføj en kommentar