Uther Lightbringer a écrit :
>Passer en _nostub n'est pas "alourdir" ton programme. Au contraire, c'est l'alléger parce qu'il a une dépendance en temps d'exécution (runtime dependency) en moins. Je vois pas vraiment ce que j'y gagne.
Tu te passes d'une couche d'émulation inutile.
Mais bon, le pseudo-_nostub de genlib est aussi une couche d'émulation, donc ce n'est pas beaucoup mieux. Tu devrais passer à une librairie graphique statique.
>Ça ne t'empêche pas de la mettre en statique. J'utilise h220xTSR dans "presque tous mes programmes" et je le linke quand-même statiquement. C'est bien ce que je te preproche: c'est totalement inutile.
Non, c'est très utile. Ça rend mes TSRs autonomes. D'ailleurs, même PpHd linke h220xTSR statiquement dans PreOs.

>Les autres auront beaucoup plus de chances de l'utiliser si tu la mets en statique. La plupart des programmeurs TI-89/92+/V200 encore actifs ne programment qu'en _nostub. Tant pis elle me sert surtout a moi si d'autre veulent l'utiliser tant mieux s'ils sont aussi bornés que toi il pouront la reprogrammer, ce n'est pas d'une grande difficulté. Si j'en ai fait une lib en dynamique c'est pour gagner de la place.
Encore un qui croit en ce mythe que les librairies dynamiques feraient gagner de la place...
La taille totale du programme avec la librairie dynamique est plus grande, parce qu'il faut aussi compter la taille de la librairie et celle du kernel.
>J'ai déjà compris que ton avis est que c'est un avantage que d'obliger les gens à faire ce que toi, tu trouves bien au lieu de les laisser faire ce qu'eux, ils trouvent bien. C'est totalement stupide et égocentrique comme position. Tu évites encore brillament le sujet. Sache que monsieur "j'aime contraindre les gens a faire du nostub et pas autre chose" que si je ne souhaite pas contraindre l'utilisateur mais qu'il puisse économiser de la place.
Je n'évite pas du tout le sujet. C'est toi qui ne me comprends pas. Il peut économiser de la place avec ExePack, en utilisant ttstart. La différence est qu'il n'est pas obligé d'économiser de la place. S'il trouve les lanceurs personnalisés plus pratiques, il a le droit de les utiliser. Alors qu'avec ta méthode, il est obligé d'utiliser le lanceur unique (PreOs + shrnklib, ce sont 2 fichiers d'ailleurs, et leur taille totale est 3 fois celle de ttstart).
si taper preos() est un contrainte insurmontable dans ce cas la je plaide coupable.
N'oublie pas que PreOs prend plus de 5 KO en archive et plus de 3 KO en RAM.
>Coup bas -> poubelle. Que veut tu que je te dise tu ne va pas affirmer que extraph en l'heure actuelle est plus rapide qe GraphX, Xlib ou genlib a par peut-être dans certains cas très particuliers
Je ne dis pas qu'elle est plus rapide, je dis qu'elle est:
- plus flexible
- plus facile à utiliser
- plus petite, surtout grâce au système de librairies statiques qui ne linke que les fonctions réellement utilisées
- probablement plus stable
- suffisamment rapide pour pratiquement toutes les utilisations pratiques
Nil
a écrit : Windows 3.xx utilise les accès disque de DOS. Il est possible qu'il ait une int propre mais elle utilise directement l'int DOS. Ce n'est qu'à partir de W95 que l'int accès disque est totalement réécrite pour Win (et d'ailleurs c'est beaucoup plus rapide)
Bon d'accord. Il est vrai que Windows 3.xx est assez bâtard comme système. C'est en partie un système d'exploitation et en partie une surcouche pour DOS.
A propos des DLLs de windows : ce sont en réalités des ressources (donc des données accessibles par un autre programme) doublées d'un support permettant d'implanter directement des fonctions dans la librairie (à la différence d'une ressource telle qu'on la rencontre sur AtariST/GEM qui ne contient que des données, le code n'étant que dans le .PRG). Je pense à ce propos que les bibliothèques de fonctions et les bibliotheques de données sont des concepts parfaitement viables, c'est le fait d'avoir utilisé la même extension .DLL pour les deux concepts qui est assez crade.
Sur TI-89/92+/V200, si on travaille proprement, on utilise DLL pour une DLL de code et une autre extension (SAV, DAT, HSC etc.) pour un fichier de données.
Pour un bon programme, il faudrait l'exécutable, une librairie de données (icônes, strings - ce qui permet de faciliter les traductions... - & co)
Pas besoin de mettre les données sous un format de librairie pour cela. Les fichiers .po et .pot (de simples fichiers texte) marchent très bien pour la traduction.
et une librairie de fonctions (ce qui permet de patcher plus facilement un programme pour corriger les bugs).
Non. Dans le meilleur des cas, ça fera toujours un fichier à remplacer comme avant. Dans le pire des cas, il faudra remplacer l'exécutable et les DLLs. C'est vraiment contre-productif comme idée.
Sinon, une petite question toute bête : je pense avoir a peu près saisi les concepts, mais quelqu'un peut-il m'expliquer simplement la différence entre un kernel et un nostub (et si on me dit : yen a un qui a besoin d'un lanceur et l'autre d'un kernel, je le fusille).
Le format _nostub est le format d'exécutables natif de AMS. Le format kernel utilise un format émulé. Une comparaison vague est de comparer le mode kernel à Cygwin et le mode _nostub à MinGW. Mais il y a des différences. Cygwin est nettement plus utile que les kernels sur TI-89/92+/V200, et son format d'exécutables n'est pas aussi non-natif que celui des kernels sur TI-89/92+/V200. Le format kernel est vraiment totalement non-natif. Il n'utilise même pas la table de relogements prévue par AMS, mais laisse cette table vide et en met une autre en un autre format.