Le mathématicien français Fabrice Bellard, fondateur des projets QEMU et FFmpeg, a également créé la formule la plus rapide pour calculer le nombre Pi et développé le format d'image
Implémentation JavaScript
bench-v8 est en avance sur le moteur
En plus de la bibliothèque permettant d'intégrer le moteur dans les applications, le projet propose également un interpréteur qjs, qui peut être utilisé pour exécuter du code JavaScript à partir de la ligne de commande. De plus, le compilateur qjsc est disponible, capable de générer des fichiers exécutables de sortie adaptés à une exécution autonome qui ne nécessitent pas de dépendances externes.
Caractéristiques principales:
- Compact et facile à intégrer dans d'autres projets. Le code ne comprend que quelques fichiers C qui ne nécessitent pas de dépendances externes pour l'assemblage. L'application compilée la plus simple prend environ 190 Ko ;
- Très hautes performances et temps de démarrage court. La réussite de 56 100 tests de compatibilité ECMAScript prend environ 300 secondes lorsqu'elle est exécutée sur un seul cœur d'un ordinateur de bureau classique. L'initialisation de l'exécution prend moins de XNUMX microsecondes ;
- Prise en charge presque complète de la spécification ES2019 et prise en charge complète de l'annexe B, qui définit les composants pour la compatibilité avec les applications Web existantes ;
- Réussite complète de tous les tests de la suite de tests ECMAScript ;
- Prise en charge de la compilation de code Javascript en fichiers exécutables sans dépendances externes ;
- Un garbage collector basé sur le comptage de références sans nettoyage cyclique, qui nous a permis d'obtenir un comportement prévisible et de réduire la consommation de mémoire ;
- Un ensemble d'extensions pour les calculs mathématiques en JavaScript ;
- Un shell pour exécuter du code en mode ligne de commande, prenant en charge la mise en évidence contextuelle du code ;
- Bibliothèque standard compacte avec des wrappers sur la bibliothèque C.
Le projet développe également trois bibliothèques C d'accompagnement impliquées dans QuickJS et adaptées à un usage individuel :
- libregexp - implémentation rapide d'expressions régulières, entièrement compatible avec la spécification Javascript ES 2019 ;
- libunicode - une bibliothèque compacte pour travailler avec Unicode ;
- libbf - Implémentation d'opérations à virgule flottante de précision arbitraire et de fonctions transcendantales avec arrondi exact.
Source: opennet.ru