Prog C / Libs kernels
>des grands noms de la programmation TI:
>Thomas Nussbaumer, Zeljko Juric, Kevin Kofler, Greg Dietsche, Scott Noveck, Samuel Stearley
Desole. Nous n'avons pas les meme references de 'Grandes Personnes'.
>Ceux qui ont des couilles, qu'ils viennent faire un débat kernel/_nostub et lib dynamique/lib statique sur le forum de TIGCC/TICT !
Ok, dans quels topics ? Off-topic ?
Mais je vais preparer soigneusement mes arguments en epluchant tous les debats de ce genre syr yaronet. Ca va saigner.
>Pour tous:
Arreter ces insultes personnelles, s'il-vous-plait. Oubliez votre sang chaud de latin.
>Kevin:
>Je parle des librairies sur TI-89/92+/V200 là.
Peut etre. Alors tu as fait une bourde technologique. Car meme si elles sont apparues apres, elles sont technologiquement inferieures aux libraries dynamiques.
>Sauf en cas de changement d'API ou d'ABI de la part de la librairie, auquel cas on a plusieurs versions de la librairie toutes incompatibles entre elles.
Bien sûr ! Mais c'est strictement interdit lorsqu'on fait une librairie dynamique.
De toute facon, je ne conseille pas de changer d'ABI pour une lib statique. Ca peut provoquer des bugs si on utilise de l'assembleur.
Bref, c'est une tres mauvaise idee de changer l'ABI.
>C'est un avantage. Ça permet de mettre à jour la librairie dans un programme sans toucher au fonctionnement des autres. La librairie peut donc changer son ABI sans que ça ne dérange qui que ce soit.
>Et les changements d'ABI permettent pas mal de changements sans toucher à la compatibilité source:
>* ajout de nouveaux champs à une structure
>* changements de fonctions en macros ou vice-versa
>* changements de convention d'appel
>Et la librairie peut même changer son API. Il suffira de changer quelques lignes de code avant de recompiler. Alors qu'avec une librairie dynamique, c'est le bazar.
Ce que tu sous-entends est que faire une librairie dynamque necessite bien plus de rigueur que pour ceux faisant une librarie statique. C'est tout a fait vrai ! Il faut etre rigoureux lorsqu'on fait une librarie dynamique et se tenir a l'ABI qu'on s'est fixe. Il faut donc avoir une certaine experience. Une fois cette experience acquise, l'ABI n'a vraiment plus aucune chance d'evoluer.
La seule possibilite d'evolution est de voir un tout nouveau concept dans l'approche des fonctionnalites de la librairie... qui entrainera irremediablement une nouvelle version. (version 2 par exemple).
>1. Il suffit normalement d'avoir les sources de la librairie et de patcher l'exécutable.
>2. Je ne vois pas en quoi c'est un problème. Ça prend 5 minutes pour l'auteur de recompiler son programme.
Faux:
1. il doit se tenir au courant des evolutions des libraries, donc REGULIEREMENT frequenter les sites internets officiels de ces libraries.
2. Telecharger la nouvelle version de la librarie.
3. Verifier qu'il n'y ait pas d'incompatibilite avec la version precedente.
4. Corriger les erreurs suceptibles de survenir a cause d'incompatibilite.
5. Compiler le programme.
6. Donner son programme a ces testeurs, car on ne peut se permettre de distribuer un programme buggue : meme si l'erreur provient de la librarie, l'utilisateur ne pourra jamais accuse que le programme.
7. Distribuer son programme sur son site.
8. Avertir les utilisateurs d'une mise a jour.
Bref, au minimum 4 bonnes heures si on veut faire les choses proprement.
Du cote de l'utilisateur, a la mise a jour d'une lib statique, il doit :
1. Telecharger TOUTES les nouvelles versions des differents programmes mises a jour (Cher paye si ce n'est juste qu'une bugue corrige dans la librarie).
2. Reinstaller le tout.
>Comment ça, ça se complexifie?
la phase de debuggage se complexifie.
>Je ne vois pas pourquoi il faut tolérer les attaques personnelles. Si quelqu'un dit "godzil est un fils de p**e", tu le trouves correct??? Et ce genre d'insultes n'apporte rien au débat.
Je suis d'accord.
>Ce qui explique aussi pourquoi vous programmez encore en mode kernel: en refusant d'apprendre l'anglais, vous vous isolez complètement du reste du monde, qui a déjà arrêté la programmation pour kernel depuis longtemps.
Tu savais que Fransesco a fait une version personnelle d'EBook Reader en kernel
Il m'avait demande conseil pour un bug de compilation
J'ai l'impression que le monde pour toi c'est :
"Thomas Nussbaumer, Zeljko Juric, Greg Dietsche, Scott Noveck, Samuel Stearley"
(Reattaque personnelle, vas-y frappe moi, tu as raison).
>On n'est pas en justice ici.
Un debat se doit d'avoir des arbitres impartiaux.
>Parfois, pas toujours. Et ce n'est pas un bon argument.
C'est un argument. Qu'il soit bon ou mauvais est purement subjectif dans un tel debat.
Et franchement, c'est quand meme un bon argument.
>Non, je parle du concept de librairies statiques sur TI-89/92+/V200...
Ca n'a rien d'un concept novateur.
Ca fonctionnait tres bien sous Fargo...
>>Je n'ai jamais entendu dire PpHd, TiMad, nEUrOO ou Thibaut dire "UTILISE xxxLib, le reste c de la merde faut surtout pas utiliser le reste"
>Tu n'as pas bien regardé alors.
J'avour que j'ai du dire quelques fois 'utilise genlib'. Mais j'ai du argumenter (sauf si j'etais fatigue).
>Reviens quand tu as une excuse meilleure.
Sur ce forum, enormement de posts sont au second voire au troisieme degre.
Pense toujours au caractere de la personne lorsque tu lis un message. Ca evitera les contre-sens.
>C'est une solution bâtarde et stupide. Soit on choisit une solution, soit on choisit l'autre. Mais si on mélange les 2, ça crée plein de problèmes (problèmes de mise à jour par exemple - comment faire en sorte que la partie statique soit toujours la même version que la partie dynamique, et cela pour tous les programmes présents sur la calculatrice???).
On utilise mon programme de convertion de librairies statiques en librarie dynamique par exemple (Cf TimeToTeam\Preos\Tigcclib)
>comment faire en sorte que la partie statique soit toujours la même version que la partie dynamique, et cela pour tous les programmes présents sur la calculatrice???
C'est bien le probleme des libraries statiques.
>Les avantages du _nostub sont bien plus importants que ses désavantages. Les avantages touchent à des domaines importants comme la simplicité d'utilisation, les désavantages ne sont qu'à niveau interne, donc complètement invisibles pour l'utilisateur.
Pas pour un utilisateur initie.
Et le desavantage premier du kernel (devoir l'installer a chaque reset) est quand meme bien faible. Meme le plus idiot peut le faire.
>Il ne s'agit pas d'une émulation de processeur, mais d'une "émulation" de système d'exploitation. "Émulation" n'est peut-être pas le bon mot, mais il n'y a pas de mot simple et bien défini pour décrire ce qu'un kernel fait. Peut-être "compatibility layer"... Mais peut-on parler de compatibilité avec un système d'exploitation inexistant?
Il y a un mot : 'MidWare'.
>Il faut distinguer entre stub, entête et code de démarrage. Ce sont 3 concepts totalement différents. Un stub est un morceau de code qui appelle un TSR ou une DLL en dehors du programme, et c'est ce TSR ou cette DLL qui exécute réellement le programme "stubbé". Mon header (cf. standard de commentaires _nostub) n'a rien à voir avec un stub. De la même manière, le code de tipatch.lib est du startup code (code de démarrage), pas un stub.
Problemes de definition. Mais ca prend beaucoup de place.