Jacobin : une implémentation plus que minimale de la spécification JVM pour Java 17, entièrement écrite avec le langage Open Source Go, et sans aucune dépendance

L'objectif est de fournir une implémentation plus que minimale de la JVM qui peut exécuter la plupart des fichiers de classe et des JAR et fournir les mêmes résultats que les JVM basées sur OpenJDK (c'est-à-dire la majorité des implémentations de JVM aujourd'hui).

Une considération primordiale dans la conception et la mise en œuvre de Jacobin est la base de code : la rendre cohérente et contenir du code clair. La cohésion, les nombreux commentaires et la vaste suite de tests permettent aux professionnels qui souhaitent en savoir plus sur le fonctionnement de la JVM de trouver l'information rapidement et dans un cadre facilement accessible. Des informations supplémentaires sur le wiki Jacobin fournissent plus de contexte et de compréhension.

Nom : jacobin.png
Affichages : 64190
Taille : 39,1 Ko

Jacobin étant strictement une JVM, son code est étroitement axé sur l'exécution de programmes Java. Un facteur important dans la réduction de la taille de la base de code et de l'exécutable est que Jacobin s'appuie sur la gestion de la mémoire intégrée de Go pour effectuer le garbage collection, et ne contient donc pas de code GC.

En raison du désir d'obtenir un produit totalement fiable, Jacobin est lourdement testé au cours de son développement. En février 2023, le code de test est 231 % plus grand que le code de production et consiste en plus de 400 tests. Ces chiffres ne cesseront d'augmenter. Lorsque Jacobin aura progressé, il est prévu de lui faire subir les suites de tests OpenJDK.

Statut actuel

L'état actuel est indiqué ici. Des mises à jour sont également publiées en temps réel sur le compte Twitter de Jacobin. Il n'y a actuellement aucune version packagée de Jacobin disponible (bien que vous puissiez toujours compiler le code). Des versions seront publiées lorsque Jacobin sera suffisamment mature pour faire fonctionner les classes comme prévu.

Actuellement, toutes les tâches et les défauts sont enregistrés dans une instance de YouTrack de JetBrains (aimablement fournie gratuitement). Les numéros de tâches apparaissent au début du commentaire pour chaque commit et push. La fonction "issues" de GitHub est utilisée uniquement pour les problèmes postés par les utilisateurs. Cette conception permet aux utilisateurs de trouver des solutions sans avoir à fouiller dans de nombreux sujets sans rapport.

Source : Jacobin

Et vous?

Que pensez-vous de cette JVM ? La trouvez-vous utile et intéressante ?

Envisagez-vous de l'utiliser dans vos projets de développement ?

Voir aussi

À quel point Java 17, la dernière version du langage, est-il plus rapide ? Voici une comparaison avec Java 11 et Java 16

JDK 17, l'implémentation de référence de Java 17, est en disponibilité générale. La première version LTS depuis JDK 11 il y a trois ans s'accompagne de 14 JEP

OpenJDK propose le projet Galahad qui vise à fusionner la compilation native de GraalVM, pour fournir la capacité de compiler les programmes Java en code machine avant l'exécution