website logo
Auteur
avatar
Yomgui

Forum » » Développement » » Les bibliothèques en mode 'baserel' et leurs problèmes...


Post� : 05-12-2009 14:43 icone du post

A deux-trois termes près oui c'est cela.

On ne pas dire que le support complet de MorphOS est remis en cause.
Ce ne'est pas vrai, la base du langage supporte complètement MorphOS!
C'est quasiment que du C ANSI ! Après il y a quelques adaptation pour utiliser l'API MorphOS directement,
plutôt que de passer par des fonctions dans la libnix.
Evidement les modules c'est différent: il n'y a pas de support pour waitpid() et autre fork() par exemple.
C'est fait différement, c'est fait pour et dans l'espris AmigaEXEC.

Pour en revenir au sujet de ce registre r13: oui la régle d'or est d'avoir toujours ce registre valide avant l'appel à un quelconque morceau de code dans la lib python. D'où d'un côté mes histoires de 'trampolines' et de l'autre le fait de ne pas appeler une des fonctions exportées par les types: elles peuvent (à 99.99%) appeler elle aussi du code de la lib!

La seule façon de se passer d'une compilation en baserel et de ne plus avoir ce problème est d'utiliser une version statique de la lib... et donc devoir recompiler toutes les applications au moindre changement de la lib!! Totalement absurde!

Il faut savoir que les lib dynamique unix, windows et amiga fonctionne complétement différement les une des autres (celle de Windows se rapproche plus de celle de l'amiga).
Sous unix chaque chargement d'une lib dynamique provoque une copie de cette dernière. C'est ce que fait le mode baserel dans une certaine mesure, sous AmigaOS/MorphOS.
--

http://blog.yomgui.fr/
http://www.yomgui.fr/yiki/doku.php
http://www.yomgui.fr/bugtracker

Cet article provient de Meta-MorphOS
https://www.meta-morphos.org/viewtopic.php?topic=334&forum=52