Emscripten 3.0, compilateur C/C++ vers WebAssembly disponible

La version du compilateur Emscripten 3.0 a été publiée, vous permettant de compiler du code en C/C++ et d'autres langages pour lesquels des interfaces basées sur LLVM sont disponibles dans le code intermédiaire universel de bas niveau WebAssembly, pour une intégration ultérieure avec des projets JavaScript, exécutant dans un navigateur Web et utilisez-le dans Node. js ou créez des applications multiplateformes autonomes qui s'exécutent à l'aide du runtime wasm. Le code du projet est distribué sous licence MIT. Le compilateur utilise les développements du projet LLVM et la bibliothèque Binaryen est utilisée pour la génération et l'optimisation de WebAssembly.

L'objectif principal du projet Emscripten est de créer un outil permettant d'exécuter du code sur le Web quel que soit le langage de programmation dans lequel le code est écrit. Les applications compilées peuvent utiliser des appels aux bibliothèques C et C++ standard (libc, libcxx), aux extensions C++, au multithreading basé sur pthreads, aux API POSIX et à de nombreuses bibliothèques multimédias. Les API pour l'intégration avec l'API Web et le code JavaScript sont fournies séparément.

Emscripten prend en charge la diffusion de la sortie de la bibliothèque SDL2 via Canvas, et fournit également la prise en charge d'OpenGL et EGL via WebGL, ce qui vous permet de convertir des applications graphiques et des jeux en WebAssembly (par exemple, il existe un portage de la boîte à outils Qt et prend en charge Unreal Engine Moteurs de jeu 4 et Unit, moteur Bullet physique). En plus de compiler du code en C/C++, des projets sont développés séparément pour assurer le lancement d'interpréteurs et de machines virtuelles dans les navigateurs pour les langages Lua, C#, Python, Ruby et Perl. Il est également possible d'appliquer des interfaces non Clang à LLVM, disponibles pour des langages tels que Swift, Rust, D et Fortran.

Changements majeurs dans Emscripten 3.0 :

  • La bibliothèque musl C utilisée dans emscripten a été mise à jour vers la version 1.2.2 (la version 2 a été utilisée dans la branche Emscripten 1.1.15.x).
  • Une partie des fonctions principalement utilisées dans le projet ont été supprimées de la bibliothèque parseTools.js : RemovePointing, pointingLevels, RemoveAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralTypePartBits, isFunctionDef, isPossablyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Dans les modèles shell.html et shell_minimal.html, la sortie des messages d'erreur qui se produisent pendant le fonctionnement d'emscripten et sont générés par l'application via stderr est commutée par défaut pour utiliser console.warn au lieu de console.error.
  • Ajout de la possibilité de spécifier un encodage de texte spécifique utilisé dans les noms de fichiers. L'encodage peut être spécifié sous la forme d'un suffixe lors de la transmission du nom de fichier, par exemple "a.rsp.utf-8" ou "a.rsp.cp1251").

Source: opennet.ru

Ajouter un commentaire