Emscripten 3.0, une chaîne d'outils de construction pour WebAssembly utilisant LLVM

Récemment la sortie de la nouvelle version du compilateur Emscripten 3.0 a été annoncée, qui se caractérise en permettant de compiler du code en C/C++ et d'autres langages pour lesquels des frontends basés sur LLVM sont disponibles, dans un middleware universel de bas niveau WebAssembly.

La fonction principale de cette compilation est son intégration ultérieure avec les projets JavaScript, son exécution dans un navigateur Web et son utilisation dans Node. Js ou créez des applications autonomes multiplateformes qui s'exécutent avec l'environnement d'exécution wasm.

À propos d'Emscripten

Le but principal développement du projet Emscripten est de créer un outil qui vous permet d'exécuter du code sur le Web, quel que soit le langage de programmation dans lequel il est écrit.

Les applications compilées peuvent utiliser des appels de bibliothèque C et C++ standard (libc, libcxx), extensions C ++, multithreading basé sur pthreads, API POSIX et de nombreuses bibliothèques multimédias. Les API pour l'intégration avec l'API Web et le code JavaScript sont fournis séparément.

S'inscrire prend en charge le streaming de la sortie de la bibliothèque SDL2 via Canvas, et fournit également un support OpenGL et EGL via WebGL, vous permettant de convertir des applications graphiques et des jeux en WebAssembly.

Pratiquement n'importe quelle base de code portable C ou C++ peut être compilée dans WebAssembly à l'aide d'EmscriptenDes jeux hautes performances qui doivent restituer des graphiques, lire des sons, charger et traiter des fichiers, aux frameworks d'application comme Qt. Emscripten a déjà été utilisé pour convertir une très longue liste de bases de code du monde réel en WebAssembly, y compris des bases de code commerciales telles que Unreal Engine 4 et Unity Engine.

En plus de compiler le code C/C++, les projets sont développés séparément pour garantir que les interpréteurs et les machines virtuelles pour Lua, C#, Python, Ruby et Perl démarrent dans les navigateurs. Il est également possible d'appliquer des interfaces non Clang à LLVM disponibles pour des langages tels que Swift, Rust, D et Fortran.

Particulièrement il existe des différences entre le runtime natif et Emscripten, ce qui signifie que, en général, eIl est nécessaire d'apporter quelques modifications au code natif. Cela étant dit, de nombreuses applications n'auront qu'à modifier la façon dont elles définissent leur boucle principale et également à modifier leur gestion des fichiers pour s'adapter aux limitations du navigateur / JavaScript.

Il existe également des limitations qui peuvent faciliter la migration de certains codes - lisez les directives de portabilité pour déterminer où vous devrez peut-être consacrer plus d'efforts.

Principales nouveautés d'Emscripten 3.0

Dans cette nouvelle version qui est présentée, la bibliothèque musl C utilisée dans emscripten a été mise à jour vers la version 1.2.2 (la version 1.1.15 était utilisée dans la branche Emscripten 2.x).

De la bibliothèque parseTools.js une partie des fonctions a été supprimée, qui sont principalement utilisées dans le projet : removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEEUnHex, Compiletime.isPointerType, CompileTypetime,.EStructile

Alors que Dans les modèles shell.html et shell_minimal.html, la sortie des messages d'erreur qui se produisent pendant l'opération emscripten et émis par l'application via stderr il est modifié par défaut pour utiliser console.warn au lieu de console.error.

Il est également souligné que ajouté la possibilité de spécifier un codage de texte spécifique utilisé dans les noms de fichiers. L'encodage peut être spécifié comme suffixe lors de la transmission du nom de fichier, par exemple "a.rsp.utf-8" ou "a.rsp.cp1251").

Enfin, si vous souhaitez en savoir plus sur Emscripten, vous pouvez consulter les détails du projet dans sa site officiel.

Et de la même manière, vous pouvez consulter la documentation sur le web sur l'utilisation d'Emscripten, un site de référence que nous pouvons vous recommander est le site développeur de Mozilla : https://developer.mozilla.org.

Aussi, il est important de mentionner que le code du projet est distribué sous la licence MIT. Le compilateur utilise les développements du projet LLVM et la bibliothèque Binaryen est utilisée pour générer WebAssembly et optimisation. Vous pouvez vérifier votre code source sur GitHub.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.