Feelin (sur GuruMed)
-
le w.e. a été chaud!
Adepte de la philosophie Gofromielleuse — On n’est jamais mieux servis que par soit-même –….
…J’ai porté la feelin.library en PPC pour Morphos. elle reste compatible avec les FCC 68k, pour la majorité car certains plantent (j’ai pas encore touvé pourquoi).
Donc j’ai attaqué aussi la confection des FCC en PPC.
Exit les makefiles, *.rexx et autres outils comme F_CreateLib…!
Tous les sources et la compilation sont gérés par un seul (pour l’instant) fichier script Python, vu qu’il existe aussi (en 2.3.3) pour AmigaOS classique. Je tente d’en faire un frontend permettant de recompiler les sources, tout comme devenir un outil pour compiler les classes publiques d’un développeur.
La lib tourne pour des trucs très simples comme créer les objets des classes internes, mais pour l’instant les classes publiques ne fonctionnent qu’en partie, pas de GUI possible (car les classes familly.fc, DOSNotify.fc et Thread.fc me plante dans les doigts)
@+_pour_gofromiel:
Mais cela implique qq changements dans l’API de Feelin, ex:
pour un proto de méthode, il ne faut pas utiliser F_METHOD(), mais F_METHOD_PROTO(), le premier étant réservé à la déclaration.
Un autre truc, je pense qu’il faut virer le système des hooks, tout doit passer par des méthodes, ne mélangons pas les paradigmes.
J’ai aussi découvert de nombreux bugs bien vicieux, corrigés maintenant
c’est simple… tu vas pas reconnaitre tes fichiers !
vous n’avez pas d’adresses mails pour communiquer ?
@macopine
je prends le pain ce soir en rentrant, pense à acheter de la litière pour le chat.
NDBatteMan : Ce thread est réservé à Feelin, je ne vois donc pas le soucis
SoundSquare a écrit :
vous n’avez pas d’adresses mails pour communiquer ?
@macopine
je prends le pain ce soir en rentrant, pense à acheter de la litière pour le chat.
si… d’ailleur c’est fait !
mais il faut aussi avertir tous le monde de l’évolution des choses…
PS: tu as une vie passionante…
NDBatteMan : Ce thread est réservé à Feelin, je ne vois donc pas le soucis
moi non plus.
promis la prochaine fois j’oublierai pas la balise [humour] [/humour]
ouai cool, ça y est j’ai enfin fini le port de la feelin.library, j’ai attaqué le port des FCC maintenant. j’ai le skeleton de lib, un script python pour les générer automatiquement.
Je test les FCC une à une, certaines ne passent pas avec ma lib: j’ai des Alert 0x4 (exec ?) lorsque je revient d’une fct PPC vers le code m68k… et je bloque complet la dessus.
Mais c’est pas important, car dès que je recompile en PPC tout marche nickel, mais cela demande un peu de boulot car faut modifier tous les création de hook et les accès aux pointeur de fonctions pour les méthodes (ainsi que changer qq macros) pour pouvoir compiler.
Mais ça marche!
J’ai recompiler en PPC donc: DOSNotify, Display, Family
J’ai testé (juste en créant l’objet) : Area, Display (ppc), DOSNotify (ppc), Family (ppc), Frame, Thread.
PS: il faut noter que d’autre FCC peuvent être ouverte, donc testées, par les FCC que j’ai testé. donc la liste est plus longue
La lib feelin.library en native PPC pour Morphos est enfin préte.
Je livrerais le code pour cette semaine donc. Il me reste encore qq bugs fonctionnels à corriger.
Par contre j’ai pas encore solutionné les bugs des FCC, (crashs divers et variés), ni ceux que j’ai vu dans le code init/close de la lib feelin (donc crashs possible lorsqu’on ferme la lib).
Les lib 68k marchent toutes maintenant avec la lib PPC, j’ai résolu le pb dont je parlais dans le précédant post.
Bon je viens de rentrer de Monaco (boula, comme je me la pète), et je vois que j’ai plein de boulot qui m’attend, sans parler de mon dossier pour l’école de cinéma de Toulouse. BREF va faloir que je me sorte les doigts du cul !
MERCI à Yomgui, le plus beau codeur à l’ouest de Manton !
Alors, vu que je suis plus tout seul dans le coup, je ne peux plus me permettre de tout changer pour rire. Du coup, j’ai plein de questions :
J’ai lu dans le « Migration Guide » que CallHookPkt() est parfaitement adapté au PowerPC. Dans la dernière version de Feelin, j’ai trouvé « malin » de toujours avoir FeelinBase en a6, que ce soit pour les méthodes ou les hooks. Il y a deux avantages à cela : 1. plus besoin de déclarer « struct FeelinBase *FeelinBase » dans le source des classes; 2. la taille du code est réduite (sur 68k en tout cas).
Le problème est que pour avoir FeelinBase en a6 je n’utilise pas CallHookPkt() ce qui n’est pas très agréable pour le PPC. La première chose que je vais faire est donc de retourner à l’ancien mode (sans FeelinBase en a6), et d’utiliser CallHookPkt() partout.
Ma question est donc la suivante : est-il possible sur PowerPC de construire un « struc Hook » temporaire sur la pile, d’y inscrire une entrée code dans « h_Entry » et d’utiliser la fonction CallHookPkt() avec ? J’ai lu que la pile ne peut pas être utilisée pour créer des structures publiques. Ce Hook temporaire est-il une structure publique, si l’on considère qu’il ne peut être crée et lu que par une seule et même tâche ?
—
Il restera encore des trucs tout pourris comme FClassInit et FClassExit, mais j’ai prévu d’utiliser les meta-classes pour de vrai (c’est presque déjà possible puisque FC_Class est une classe comme une autre), du coup il ne restera plus qu’a implémenter les méthodes FM_New et FM_Dispose de la meta-classe.
J’ai lu dans le « Migration Guide » que
D’une manière générale, je te conseillerais de ne pas te fier à ce « torchon » tellement il montre la méconnaissance de l’AmigaOS qu’ont/avaient les Frieden.
Ce « guide » interdit d’allouer un Message sur la pile, d’utiliser de la mémoire libérée alors que l’on est sous Forbid() et bien d’autres choses qui ont toujours été légales et doivent le rester à jamais vu qu’elles sont très utilisées (un exemple au hasard: AHI).
Jusqu’ici, ils ont toujours annoncé beaucoup de choses saugrenues sur lesquelles ils ont finalement dû changer d’avis quelques années plus tard.
Je crois qu’il faut se dire que tout ce qui est permis sur 68k et MorphOS est permis ou le sera à terme sur OS4. Même si les « docs » écrivent le contraire.
Le problème est que pour avoir FeelinBase en a6 je n’utilise pas CallHookPkt() ce qui n’est pas très agréable pour le PPC.
Appeler un hook sans passer par CallHookPkt() fonctionne sur 68k et MorphOS.
J’imagine que cela fonctionne aussi avec OS4 si tu appelles le pointeur de fonction du hook en mode 68k (avec leur exec/Emulate()) et que celle ci soit en fait un emu trap, comme sous MorphOS. Le migration guide doit dater d’avant l’introduction des emu traps dans OS4.
Mais cela devient horrible à gérer et comprendre et tu as raison d’utiliser CallHookPkt().
est-il possible sur PowerPC de construire un « struc Hook » temporaire sur la pile, d’y inscrire une entrée code dans « h_Entry » et d’utiliser la fonction CallHookPkt() avec ?
Arrête de lire ce « migration guide » :-p Ils ont encore dû fumer avant d’écrire cette partie et imaginer qu’ils allaient introduire des espaces mémoire séparés en gardant l’API actuelle.
MorphOS le permet. Et j’imagine qu’OS4 aussi (et si ce n’est pas le cas, ils y viendront, comme d’habitude).
Ce Hook temporaire est-il une structure publique, si l’on considère qu’il ne peut être crée et lu que par une seule et même tâche ?
Trop de migration guide nuit à la santé
D’une manière générale, tu peux faire ce que tu veux avec la mémoire. Comme sur 68k.
A la limite, évite d’accéder depuis une interruption à des choses allouées sur la pile car celle ci pourrait être swapée sur disque un jour.
Mais c’était déjà valable sur 68k.
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Feelin (sur GuruMed)