>>* les libs pour le graphisme (en dynamique, ce qui gagne de la place a partir du moment au tout le monde possede la lib - ce qui est le cas de graphlib/gray4lib et presque de genlib)
>"tous ceux qui ont Universal OS" != "tout le monde"
"tous ceux qui ont Universal OS" ~= "tout le monde"
Et meme ceux qui n'ont pas UniOs ont presque tous graphlib (a part les nostubers foux

)
>>* les libs perso en cas de prog trop gros
>On peut s'en sortir autrement, par exemple en utilisant la méthode de la FAT Engine (qui est trop grosse pour être une librairie statique à cause de la limite des 64 KO).
Oui, on peu s'en sortir autrement, bien sur, mais c'est plus compliqué (et meme tres compliqué si on veut faire des librairies qui s'appellent les unes les autres).
Et si le FAT Engine poserait probleme avec la limite des 64Ko, c'est bien que les librairies dynamiques ont quand meme des avantages par rapport au librairie statiques, non ?
Et a part par ideologie, je ne voit pas tellement pourquoi ce n'est pas une librairie dynamique en mode kernel (ou peut etre le defi de programmer des libs dynamiques en nostub ? - mais ca reste du domaine de l'ideologie)
Ce que je dis, c'est le kernel a des avantages, pas qu'il est inévitable.
>>(ou pour rendre des fonctions precises accessibles a tout le monde: soundlib, genlib, api92, ...)
>On peut faire des librairies statiques personnelles (comme ExtGraph) avec les versions les plus récentes de TIGCC (et cela soit en C, soit en assembleur GNU, et peut-être dans pas trop longtemps aussi en assembleur A68k).
Oui, bien sur, mais c'est souvent une perte de place (surtout pour des librairies qui font un truc precis , comme soundlib, ou ps2lib , ou presque toutes les fonction sont forcement utilisées - ce qui n'est pas le cas de ExtGraph).
Encore une fois, c'est une possibilitée offerte par le kernel, qu'on est libre d'utiliser ou pas (et qui me semble superieur dans la plupart des cas)
>>* les RAM_CALLs
>La plupart du temps, ils sont utilisés pour des routines sales (lecture directe de la table des handles ou de la VAT par exemple).
Il y a des RAM_CALLs utilies et propres: CALCULATOR, HW_VERSION, LCD_WIDTH, LCD_HEIGHT, LCD_LINE_BYTES, KEY_LEFT,
KEY_RIGHT,
KEY_UP,
KEY_DOWN,
KEY_UPRIGHT,
KEY_DOWNLEFT,
KEY_DIAMOND,
LCD_SIZE,
KEY_SHIFT,
doorsos::font_medium,
, ROM_VERSION
>Et ils peuvent tous être obtenus autrement (sinon, comment ferait le kernel?).
Oui, mais s'ils sont offerts par le kernel, pourquoi s'en priver ?
>>* les ROM_CALLs plus rapide (bon d'accord, pas beaucoup, mais plus petits)
>Plus petits? En _nostub et avec OPTIMIZE_ROM_CALLS, c'est 6 octets par ROM_CALL. En mode kernel, c'est 8 octets (6 pour le saut absolu et 2 pour l'entrée dans la table des relogements) par ROM_CALL.
Et un regitre de condamné.
Au fait, ca fait combien de cycles dans les deux cas ?
>>* les BSS
>C'est inutile. Il y a des fonctions pour allouer de la mémoire proprement (Heap*). C'est ce que fait "derrière les coulisses" le kernel pour les BSS, et là encore, il y a des tonnes de relogements inutiles à faire par rapport aux fonctions Heap*.
Pas inutile. A utiliser avec precaution (en sachant comment c'est géré), mais ca peut faire gagner de la place.
>>* ...
>?
>Je crois que tu as déjà donné toutes les fonctions du kernel.
Oui, c'est fort possible
En fait, non, on a aussi l'anti-crash, la limite des 8Ko, l'utilisation de prog asm dans une expression, la definition d'un point de sortie, et peut-etre d'autres ...
C'est vrai que tout ce que fait le kernel peut etre fait autrement, mais c'est souvent plus simple (et plus efficace) avec le kernel.
Et en partant du principe que tout le monde a un kernel (ce qui est presque vrai), pourquoi se priver de ses avantages ?