Jitter fait officiellement partie du projet GNU

Il y a quelques jours, il a été annoncé que le projet Jitter devenait officiellement un projet sous l'égide du projet GNU et qu'il était désormais développé sous le nom de GNU Jitter, utilisant l'infrastructure GNU et conformément aux exigences du projet.

Pour ceux qui ne connaissent pas Jitter, il s'agit d'une implémentation qui permet de générer des machines virtuelles portables et très rapides pour des langages de programmation arbitraires, dont les performances d'exécution de code sont nettement supérieures à celles des interpréteurs et proches de celles du code compilé natif.

Jitter est hautement portable et une VM correcte présentera exactement le même comportement sur n'importe quelle plate-forme qui n'a qu'un compilateur et une bibliothèque C standard ; cependant, les performances seront meilleures en utilisant l'une des architectures prises en charge (actuellement : M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64 ; 64e niveau : Aarch390, Alpha, ARM, SXNUMXx) sur les systèmes ELF avec GCC. Bien sûr, Jitter fait partie du projet GNU et est principalement conçu pour être utilisé sur le système GNU.

Jitter prend en entrée une spécification de haut niveau des instructions prises en charge par une machine virtuelle, et en sortie une implémentation prête à l'emploi d'une machine virtuelle pour exécuter les instructions données.

La logique de chaque instruction de la spécification est définie en C. Parmi les fonctionnalités supplémentaires, on trouve la prise en charge des opérations de branchement conditionnel, difficiles à implémenter en C et inhérentes aux langages de programmation dynamique, telles que la vérification des valeurs d'étiquettes et la détection des dépassements de capacité.

Le runtime Jitter offre également une prise en charge efficace des opérations de branchement conditionnel difficiles à mettre en œuvre en utilisant uniquement C, telles que la vérification des balises de valeur requise par les langages à typage dynamique et l'arithmétique avec vérification de débordement. Le code VM accède aux opérations d'appel et de retour de procédure, dans la plupart des cas en s'appuyant sur des mécanismes matériels efficaces.

La machine virtuelle ainsi créée est formatée en C avec quelques insertions d'assembleur. Des configurations permettent d'activer diverses optimisations et de sélectionner les mécanismes de déploiement, facilitant ainsi la migration d'une machine virtuelle vers différentes plateformes.

Il prend en charge l'utilisation d'architectures d'exécution de registre, de pile et de jointure, ainsi que la possibilité de mettre en miroir les structures de données des machines virtuelles dans les registres matériels du processeur et de connecter des ramasse-miettes.

Le code généré comprend une API C simple pour remplacer et exécuter dynamiquement le code dans une machine virtuelle, ainsi qu'un programme de contrôleur pour exécuter séparément le code à partir de fichiers texte dans une machine virtuelle.

Le code C généré est fortement conditionné et peut être configuré pour s'exécuter à l'aide de différentes techniques de distribution de sophistication variable ; les techniques de répartition les plus efficaces reposent sur une prise en charge d'assemblage spécifique à l'architecture, mais pas à la machine virtuelle, fournie par Jitter ; tous les modèles de répartition, mais l'un est également basé sur les extensions GNU C.

Enfin, pour ceux qui souhaitent en savoir plus, le code source original de Jitter est écrit en C et disponible sous licence GPLv3. Vous trouverez plus d'informations en suivant ce lien.

Comment obtenir de la gigue ?

Pour ceux qui souhaitent tester Jitter, ils peuvent obtenir le code source en ouvrant un terminal et en tapant la commande suivante dedans :

git clone http://git.ageinghacker.net/jitter

Une fois cela fait, nous allons maintenant entrer dans le dossier qui contient le code, nous allons exécuter le script de démarrage qui est utilisé pour générer les fichiers nécessaires pour configurer et créer Jitter, y compris un script de configuration. Nous le faisons avec :

cd jitter && ./bootstrap

Il convient de mentionner que Jitter suit les conventions GNU pour la configuration et la construction et prend en charge la construction à partir du répertoire source ; en fait, il prend en charge la compilation croisée et même l'exécution de la suite de tests dans une compilation croisée via un émulateur.

./configure && make

Enfin, pour exécuter, il suffit de taper :

make check


Ajouter comme source préférée dans Google