Le travail effectué par Álmos Rajnai sur l’implémentation d’un JIT (compilateur Just In Time qui permet d’améliorer grandement les performances d’un émulateur) dans E-UAE PowerPC commence à porter ses fruits. Álmos développe la version AmigaOS 4 de cet E-UAE avec JIT, mais une version MorphOS est compilée en parallèle par d’autres as du code et on peut imaginer qu’une version MacOS X PPC ou même Linux PPC pourraient voir le jour à terme.
Il a annoncé fièrement, et il a de quoi être fier, sur son blog que son bébé était rentré en phase d’alpha test.Il a pris cette décision après son combat victorieux qui lui a permis de démarrer le Kickstart avec son JIT, un bug qu’il “chassait” depuis près de 4 mois.
Bien évidemment, ce n’est pas encore fini et il reste encore de nombreuses choses à faire mais, comme il le dit lui même, il va pouvoir désormais s’attaquer sereinement à la correction des instructions déjà implémentées et implémenter le reste des instructions manquantes. Dès que ceci sera fait, l’OS sera utilisable et le reste pourra être ajouté graduellement.
Site Internet : Le blog EUAEJIT d’Álmos Rajnai
Source : Le site polonais Exec.pl
20 Commentaires
Passer au formulaire de commentaire
/me fait des bonds de joie intérieurement.
Génial! 🙂
Auteur
Un rêve qui deviendra réalité !
Je me souviens encore d’en avoir discuté quand on a eu nos premiers Peg/AOne, comment on bavait devant cette “feature” de WinUAE ! Et bientôt, il sera nôtre !
YES ! 😎
—
/me est tout content aussi !
Le fait que ce JIT soit pour les powerpc et os4/mos n’apparaît pas dans la news…(avec tout les systèmes et ému aujourd’hui, pas évident de deviner la plateforme “target”) Mais cool ! Egalement très intéressante lecture pour les coders.
Il développe en premier pour OS4, vu que c’est de là que vient le Bounty, mais il a donné l’accès aux sources a chacun et un programmeur talentueux est déjà en train de porter son travail sur Morphos. C’est une super nouvelle et je dois dire que je l’attend avec impatience ce JIT.
Autant le travail a faire sur OS4 est une véritable montagne immense, autant le portage vers d’autres systèmes comme MorphOS risque d’être tout aussi gigantesque. En effet, la version OS4 utilisera Petunia (le JIT de l’OS4) alors que Trance (le JIT de MorphOS) est différent.
@Guibrush : est ce que ce serait indiscret de donner le nom de ce développeur talentueux? 😉
@serge
[quote]la version OS4 utilisera Petunia (le JIT de l’OS4)[/quote]
non
c’est le même gars qui a fait petunia mais c’est pas petunia c’est un nouveau projet
@ Elwood : c’est ce que j’ai écris 😉
@ Elwood : ah, oups, je vois que tu dis que ce n’est pas le cas 😮
Quel est la différence entre un JIT 68K -> PPC pour un UAE et un JIT 68K -> PPC Pour un OS comme MOS ou AOS4 ?
En quoi n’était-il pas possible d’utiliser le code source de Pétunia ou mieux de Trance pour JITer UAE ?
Même si j’imagine que ce précédent travail (sur pétunia donc) n’a pas été inutile il semble qu’il faille recommencer de 0, pourquoi ? (Juste pour ma culture et être un peu moins idiot ?).
@Sa:
UAE accède aux registres hardware des Amiga d’origine, ce qui n’est pas le cas d’OS4/Mos. Raison pour laquelle seules les applis système tournent sous Petunia/Trance: hors de question d’essayer tes démos ECS/AGA favorites.
Pas satisfaisant comme réponse, le JIT ne concerne que la transformation à la volée d’instructions 68k en PPC que viennent faire les customs chips dans cette histoire…
Mais je pense avoir compris pourquoi.
Bon, alors je détaille, même sans merci 😉
En plus de recompiler à la volée les parties exécutables, Pétunia et Trance vont rediriger tous les appels systèmes vers OS4 et MOS. Ce n’est donc bien sûr pas possible de faire tourner les jeux et démos utilisant les processeurs dédiés des Amiga classiques. Il fait donc avoir un UAE dédié, qui agit comme une boîte noir hermétique. Pour son JIT on peut bien sûr réutiliser en partie le code de Pétunia/Trance, mais en ignorant tout le code créant des passerelles avec l’OS.
(désolé pour les fôôtes :
– il faUt donc avoir…
– une boîte noirE )
ok, j’avais donc bien traduis la réponse sur un forum anglois ou la même question avait été posée [b]MERCI[/b].
😀
je dois bien être le seul à ne pas être intéressé par ce truc 😛
@ serge :
Le programmeur MorphOS en question s’appelle Thor. Il a déjà implémenté le code de Rajnai dans la version MOS de E-UAE et il l’a aidé a débuger la fonction qui enpéchait le kickstart de démarrer. Voici le lien vers la discution en question : http://euaejit.blogspot.ch/2012/07/jit-goes-blue.html#comment-form
Sinon, meme si c’est Rajnai qui a développé Petunia pour OS4 et que le JIT est certainement basé sur cette expérience qu’il a acquis, il s’agit d’une toute autre implémentation qui n’est absolument pas dépendante du système d’exploitatation utilisé. C’est pourquoi le JIT profitera autant à MOS qu’a OS4. Je trouve au passage que c’est une belle ouverture d’esprit qui montre bien que l’on peut s’aider les un les autres au lieu de se taper dessus pour savoir quel système est le meilleur. La collaboration entre Rajnai et Thor est la pour le prouver.
Pourquoi ne pas utiliser Petunia ? Parce que Petunia a été développé pour faire fonctionner des applications purement 68k, donc tout ce qui touche aux accès du chipset a été laissé de côté. Rajnai explique clairement dans sa faq qu’implémenter les instructions manquantes revient a revoir completement la construction même de Petunia, c’est pour cela qu’il recommence à 0. Beaucoup de gens disent que ça ne devrait pas poser de problème car il ne s’agit que de l’émulation 68k. C’est malheureusement faux, car la manière dont le JIT va traiter les données est intiment liée à la manière dont le chipser émulé par UAE va les recevoir et les envoyer. Comme beaucoup de choses ont été programmées en “dur” sans passer par les appels systèmes voir même sans respecter les guides de programmation de feu Commodore, une émulation juste un peu diférente de l’original va amener au crash du jeu en question.
C’est pour ça que c’est facile d’émuler un mac 68k, car tout est dans la ROM, et que c’est si compliqué d’émuler un amiga, car les composant émulés doivent fonctionner comme dans la réalité au timing exact.
Tout ceci est intéressant.. Du moment que ça marche, c’est le principal ! 😉