bon, v dormir je pe pa mempêcher de commenter 2-3 trucs



(dzolé kevin

)
- C'est le mode "natif" des TI-89/92+. Pourquoi émuler une autre API quand il y en a déjà une.
bah si tu veux faire des programmes lents, utilise les routines d'ams
j'adore le traceur de lignes

g mêm pa essayé les polygones remplis

- C'est le mode de programmation le plus moderne pour TI-89/92+. Le mode kernel émule un vieux mode de programmation: celui de Fargo, qui a plus de 5 ans. Entretemps, il y a déjà plus de 2 ans, l'API native de AMS, les ROM_CALLs, a été documentée en détail par Zeljko Juric et entretemps aussi par TI eux-mêmes. Pourquoi émuler une vieille API quand on en a une récente? Et on n'a pas besoin de kernel si on n'utilise que les ROM_CALLs.
le plus moderne? bah si c le "mode "natif" des TI-89/92+" c pas le plus moderne dsl tu te contredis
Pourquoi émuler une vieille API quand on en a une récente? heu la je suis pas sur de te suivre... les kernels récents comme PreOs émulent une vieille API?

bien sur quand j'installe un kernel, ma 92+ ams 2.05 se transforme en 92 I
et comme tlm n'utilise pas forcément QUE les rom calls...
- C'est plus facile à utiliser: l'utilisateur entre le nom du programme suivi de (), appuie sur [ENTER] et ça marche. Pas besoin d'installer quoi que ce soit.
bah, argument bidon, avec un kernel, tu tapes preos() puis paf! [ENTER]

c vachement plus compliké hein?
Ça économise de la RAM: un kernel doit toujours être installé en RAM. Si on n'a que des programmes _nostub, tout peut être archivé.
bah, ça encore, pbl de taille des kernels -> argument bidon, ct valable du temps d'unios... la maintenant vu la taille de PreOs
- On économise la place prise par le stub et le header des programmes pour kernel.
bof, pour la place que ça prend... quand on voit le code asm dégeulé par tigcc, on se dit que le code stub fé pas perdre grand chose

(bon bien sur, dans le cas des progs _nostub asm, bah...la encore, c'est franchement pas ça qui rend le plus de place... sauf si c'est un petit prog d'1 Ko...
J'en ai probablement oubliées d'autres.
surement... cherche, que je te les démolisse aussi
Et pour répondre à l'argument que les kernels permettent les librairies dynamiques: Déjà, les librairies dynamiques sont aussi possibles en _nostub.
bah ué c un argument de moins en faveur du kernel, mais 0 arguments en plus en faveur du _nostub
Ensuite, à moins de créer un programme >64 KO, les librairies dynamiques sont à éviter absolument car:
- Elles créent souvent des conflits de version, voire même de nom. Exemples: util de PlusShell 0.99 vs. util de PlusShell 1.00 - même entre versions différentes du même shell, il y a eu des librairies incompatibles dans les 2 sens -, flib de Fargo vs. FLib de FL, ...
numéro de version... hhm tiens ça me dit qquechose... aah ué c preos qui m'a dit lotre jour "shrinklib: new version needed"
- Toutes les routines de la librairie dynamique doivent être présentes sur la calculatrice, qu'elles soient utilisées ou non. Avec une librairie statique, seules les fonctions effectivement utilisées seront présentes sur la calculatrice.
bah je préfère avoir une seule lib pour plein de progs que plein de progs avec les mêmes morceaux de code dedans... c un point de vue

heu c sur que si c'est pour: jsr userlib::idle_loop c pas vraiment indispensable de se servir de userlib

enfin bon, ça dépend du programmeur... mais un prog de merde en _nostub le sera aussi en kernel, et vace versi...
- Toutes les routines de la librairie dynamique doivent être présentes sur la calculatrice, qu'elles soient utilisées ou non. Avec une librairie statique, seules les fonctions effectivement utilisées seront présentes sur la calculatrice.
justement! ac les libs dynamiques tu les as qu'une seule fois, même si il y en a de pas utilisées, ça compense largement le surcout de mem demandé par plein de progs _nostub avec les mêmes routines de libs statiques dedans...
- Une conséquence de ceci: la flexibilité d'une librairie dynamique est limitée par sa taille. Une librairie statique peut être aussi flexible que le programmeur veut, c'est-à-dire offrir autant de variantes de la même fonction que le programmeur veut, puisque les variantes non utilisées ne seront pas présentes sur la calculatrice de toute façon.
bah, dans ce cas, ce n'est plus la lib d'origine, et au pire, en transposant ça au kernel, le programmeur réécrit la routine en question... AU PIRE ça revient au même qu'en _nostub pt de vue bouffage de mem...
- Toutes les routines de la librairie dynamique seront copiées en RAM au lancement du programme, qu'elles soient utilisées ou non, d'où gaspillage de RAM.
merde y a CF qui tourne sur ma calc... ça bouffe de la ram ce truc?
- C'est plus facile à utiliser. L'utilisateur n'a pas à s'occuper de l'envoi des librairies à la calculatrice. Il ne saura même pas qu'une librairie est utilisée (sauf en lisant ce fait dans la documentation du programme). Ça évite tous les problèmes du genre "Missing lib: dl_lib", "Wrong version: dl_lib", ... et facilite donc énormément l'usage d'un programme.
Wrong version? mais tu te contredis avec ce que t'as dit au dessus concernant les "conflits de version"...
et facilite énormément l'utilisation d'un programme... hum c'est sur que pour les neu² c plus simple... bah t'envoie la lib sur ta calc une fois pour toutes en attendant la prochaine version, tu l'archive (si la calc le permet ) et voila... je vois pas ou c'est compliqué... c'est comme ton coup de taper le nom du kernel "suivi de ()" (

) qui est trop fatiguant lol
Enfin, il existe beaucoup de librairies dynamiques communément utilisées qui ne font que réimplémenter des fonctions de AMS. Par exemple filelib: ce n'est qu'un wrapper autour de certains ROM_CALLs pour émuler une ancienne API qui n'a aucun intérêt par rapport à l'utilisation directe des ROM_CALLs appropriés et qui nécessite des wrappers pour rien.
je ne me suis jamais servi de filelib... c'est juste plus simple a utiliser pour les débutants (je suppose sinon si c plus compliké que les ROM_CALLS filelib est vraiment mal foutue

)
- D'autres librairies dynamiques (par exemple userlib ou graphlib) réécrivent des fonctions de AMS et y rajoutent d'autres fonctions qui ne sont pas dans AMS. Là, aussi, ce n'est pas pratique du tout parce que les fonctions qui ne servent à rien (parce qu'elles sont déjà dans AMS) se retrouvent sur la calculatrice en train d'occuper de la mémoire, et en train d'occuper de la RAM pendant l'exécution du programme. C'est également du gaspillage.
On en revient toujours au même... tu as l'air d'être marié à ams kevin... oui effectivement graphlib reprogramme des fct d'ams, mais ams est LENT, les fct de graphlib, même si elles ne sont pas fulgurantes de rapidité (on peut tjrs aller plus vite) sont quand même plus rapide (bcp

) que celles d'ams
la encore si c'est pour faire un pauvre prog qui affiche "bonjour" et deux lignes horizontales en dessous, c'est pas vraiment la peine d'utiliser graphlib, effectivement les romcalls suffiraient certainement
C'est également du gaspillage
oui, t'as raison, c'est une honte!!!! il faut virer ams!!! (heu, la il va me taper le kevin

)
Là encore, j'ai probablement oublié d'autres arguments.
je te fais confiance, préviens moi quand t'en aura trouvés d'autres, que je les casse aussi
Personne ne t'oblige à lire ce topic. Comme ça au moins on ne polluera pas tous les autres topics avec ce débat.
je crois que le débat nostub/kernel a déja pollué le forum entier, et ce depuis un bon moment... (oui je c j'ai pas mi le underscore a nostub...)
boon, v dormir
(dsl pour le surcout de smiley

)
Edit: j'avais oublié les citations lol 