Este disponibil Emscripten 3.0, un compilator C/C++ la WebAssembly

A fost publicată lansarea compilatorului Emscripten 3.0, permițându-vă să compilați cod în C/C++ și alte limbi pentru care sunt disponibile frontend-uri bazate pe LLVM în codul intermediar universal de nivel scăzut WebAssembly, pentru integrarea ulterioară cu proiecte JavaScript, rulând într-un browser web și utilizați în Node.js sau crearea de aplicații autonome multi-platformă care rulează folosind runtime wasm. Codul proiectului este distribuit sub licența MIT. Compilatorul folosește dezvoltări din proiectul LLVM, iar biblioteca Binaryen este folosită pentru a genera WebAssembly și optimizare.

Scopul principal al proiectului Emscripten este de a crea un instrument care vă permite să executați cod pe Web indiferent de limbajul de programare în care este scris codul. Aplicațiile compilate pot folosi apeluri către biblioteci standard C și C++ (libc, libcxx), extensii C++, multithreading bazat pe pthreads, API-uri POSIX și multe biblioteci multimedia. API-urile pentru integrarea cu API-ul web și codul JavaScript sunt furnizate separat.

Emscripten acceptă difuzarea ieșirii bibliotecii SDL2 prin Canvas și oferă, de asemenea, suport pentru OpenGL și EGL prin WebGL, care vă permite să convertiți aplicații grafice și jocuri în WebAssembly (de exemplu, există un port al setului de instrumente Qt și acceptă Unreal Engine Motoarele de joc 4 și Unit, motorul fizic Bullet). Pe lângă compilarea codului în C/C++, proiectele sunt dezvoltate separat pentru a asigura lansarea de interpreți și mașini virtuale în browsere pentru limbile Lua, C#, Python, Ruby și Perl. De asemenea, este posibil să aplicați frontend-uri non-Clang la LLVM, disponibile pentru limbi precum Swift, Rust, D și Fortran.

Schimbări majore în Emscripten 3.0:

  • Biblioteca musl C folosită în emscripten a fost actualizată la versiunea 1.2.2 (versiunea 2 a fost folosită în ramura Emscripten 1.1.15.x).
  • O parte din funcțiile care au fost utilizate în principal în cadrul proiectului au fost eliminate din biblioteca parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuratStructrucTypetParturalTypeTypetrulTypeType , isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • În șabloanele shell.html și shell_minimal.html, ieșirea mesajelor de eroare care apar în timpul funcționării emscripten și sunt transmise de aplicație prin stderr este comutată implicit pentru a utiliza console.warn în loc de console.error.
  • S-a adăugat posibilitatea de a specifica o codificare specifică de text utilizată în numele fișierelor. Codificarea poate fi specificată sub forma unui sufix la trecerea numelui fișierului, de exemplu, "a.rsp.utf-8" sau "a.rsp.cp1251").

Sursa: opennet.ru

Adauga un comentariu