Emscripten 3.0, C/C++ à WebAssembly compilatore dispunibule

A liberazione di u compilatore Emscripten 3.0 hè stata publicata, chì permette di cumpilà codice in C / C ++ è altre lingue per i quali i frontend basati in LLVM sò dispunibuli in u codice intermediu universale di bassu livellu WebAssembly, per l'integrazione successiva cù i prughjetti JavaScript, in esecuzione. in un navigatore web, è aduprà in Node.js o creanu applicazioni multipiattaforma autonome chì funzionanu cù u runtime wasm. U codice di u prugettu hè distribuitu sottu a licenza MIT. U compilatore usa sviluppi da u prughjettu LLVM, è a biblioteca Binaryen hè aduprata per a generazione è ottimisazione WebAssembly.

U scopu principale di u prughjettu Emscripten hè di creà un strumentu chì vi permette di eseguisce codice nant'à u Web, indipendentemente da a lingua di prugrammazione in quale u codice hè scrittu. L'applicazioni compilate ponu utilizà chjamate à biblioteche C è C++ standard (libc, libcxx), estensioni C++, multithreading basatu in pthreads, API POSIX è parechje biblioteche multimediali. L'API per l'integrazione cù l'API Web è u codice JavaScript sò furnite separatamente.

Emscripten supporta a trasmissione di l'output di a biblioteca SDL2 via Canvas, è furnisce ancu supportu per OpenGL è EGL via WebGL, chì permette di cunvertisce l'applicazioni grafiche è i ghjochi in WebAssembly (per esempiu, ci hè un portu di u toolkit Qt è supporta Unreal Engine). 4 è Unità mutori di ghjocu, mutore Bullet fisicu). In più di cumpilà codice in C/C++, i prughjetti sò sviluppati separatamente per assicurà u lanciu di interpreti è macchine virtuali in i navigatori per e lingue Lua, C#, Python, Ruby è Perl. Hè ancu pussibule di applicà frontend non-Clang à LLVM, dispunibili per lingue cum'è Swift, Rust, D è Fortran.

I cambiamenti principali in Emscripten 3.0:

  • A libreria musl C usata in emscripten hè stata aghjurnata à a versione 1.2.2 (a versione 2 hè stata aduprata in a branche Emscripten 1.1.15.x).
  • Una parte di e funzioni chì sò stati utilizati principarmenti in u prugettu sò stati eliminati da a biblioteca parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isTtructuralStructrulType, isTtructuralTypeType Bits, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • In i mudelli shell.html è shell_minimal.html, l'output di messagi d'errore chì si trovanu durante l'operazione di emscripten è sò pruduciutu da l'applicazione via stderr hè cambiatu per automaticamente per utilizà console.warn invece di console.error.
  • Aggiunta a capacità di specificà una codificazione di testu specificu utilizata in i nomi di schedari. A codificazione pò esse specificatu in forma di suffissu quandu passa u nome di u schedariu, per esempiu, "a.rsp.utf-8" o "a.rsp.cp1251").

Source: opennet.ru

Add a comment