Emscripten 3.0 er tilgjengelig, en C/C++ til WebAssembly kompilator

Utgivelsen av Emscripten 3.0-kompilatoren har blitt publisert, slik at du kan kompilere kode i C/C++ og andre språk som LLVM-baserte grensesnitt er tilgjengelige for til universell lavnivå mellomkode WebAssembly, for påfølgende integrasjon med JavaScript-prosjekter, som kjører i en nettleser, og bruk i Node. js eller lage frittstående multiplattformapplikasjoner som kjører med wasm runtime. Prosjektkoden er distribuert under MIT-lisensen. Kompilatoren bruker utviklinger fra LLVM-prosjektet, og Binaryen-biblioteket brukes til generering og optimalisering av WebAssembly.

Hovedmålet med Emscripten-prosjektet er å lage et verktøy som lar deg kjøre kode på nettet uavhengig av hvilket programmeringsspråk koden er skrevet på. Kompilerte applikasjoner kan bruke kall til standard C- og C++-biblioteker (libc, libcxx), C++-utvidelser, pthreads-basert multithreading, POSIX APIer og mange multimediebiblioteker. APIer for integrasjon med Web API og JavaScript-kode leveres separat.

Emscripten støtter kringkasting av utdata fra SDL2-biblioteket via Canvas, og gir også støtte for OpenGL og EGL via WebGL, som lar deg konvertere grafiske applikasjoner og spill til WebAssembly (det er for eksempel en port til Qt-verktøysettet og støtter Unreal Engine 4 og Unit-spillmotorer, fysisk Bullet-motor). I tillegg til å kompilere kode i C/C++, utvikles prosjekter separat for å sikre lansering av tolker og virtuelle maskiner i nettlesere for språkene Lua, C#, Python, Ruby og Perl. Det er også mulig å bruke ikke-Clang-grensesnitt på LLVM, tilgjengelig for språk som Swift, Rust, D og Fortran.

Store endringer i Emscripten 3.0:

  • Musl C-biblioteket brukt i emscripten har blitt oppdatert til versjon 1.2.2 (versjon 2 ble brukt i Emscripten 1.1.15.x-grenen).
  • En del av funksjonene som hovedsakelig ble brukt i prosjektet har blitt fjernet fra parseTools.js-biblioteket: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralPartsParts,Typeftur,TypeTyp,Type isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • I malene shell.html og shell_minimal.html endres utdataene av feilmeldinger som oppstår under driften av emscripten og som sendes ut av applikasjonen via stderr som standard til å bruke console.warn i stedet for console.error.
  • Lagt til muligheten til å spesifisere en spesifikk tekstkoding som brukes i filnavn. Kodingen kan spesifiseres i form av et suffiks når du sender filnavnet, for eksempel "a.rsp.utf-8" eller "a.rsp.cp1251").

Kilde: opennet.ru

Legg til en kommentar