120

Kevin Kofler a écrit :
La méthode d'origine du TICT eBook Reader (il utilisera bientôt OO_GetAttr sur AMS 2 et une lecture d'adresses dans DrawStr sur AMS 1 - la méthode pour AMS 1 est un hack, mais comme AMS 1 n'évolue plus, ce n'est pas grave) n'est pas "horriblement lente". Elle prend quelques millisecondes au démarrage, mais c'est la même chose pour la recherche des fontes dans la ROM avec la méthode utilisée par le kernel.

Et bonjour la compatibilite PedroM !!!!
Et dire que je comptais mettre un max d'ebook !!
Merci !!
mourn

121

Kevin> désolé, tu n'étais pas très clair, donc je pensais que tu parlais d'afficher le texte dans un écran virtuel pour éviter le clignotement, pas de la copie en RAM de la font. (et puis je me souviens avoir vu une des 1ères versions d'eBook reader horriblement lentes justement parce qu'elles utilisaient DrawChar, mais ça a dû changer depuis)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

122

> Forcement je suis le seul a l'offrir cet technologie. Et tout le monde (sauf, a la rigueur, Pollux) a ete d'accord.
Moui, n'empêche que depuis le temps t'aurais pu remettre les fonctions originales (à la limite en lib statique devil)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

123

je t'avais envoye un mail y'a un temps pour te le demander. Pas eu de reponse.

124

PpHd a écrit :
Stop ! Je te parle du niveau technologique a utilise. Evidemment qu'une secreatire est mieux qu'un traitement de texte.

rotfl
On se demande comment tu comptes utiliser ta secrétaire en lisant cela. grin
Ca arrive !

Pas si on sait ce qu'on fait. Une règle à suivre: ne jamais copier les headers dans Include. Toujours les inclure au projet avec les .a (et les garder dans le même répertoire que le projet lui-même), comme ça, quand on met à jour la librairie, il suffit de copier tous les fichiers par dessus ceux d'avant.
Pas tant que ca.

Sur TI-89/92+/V200 oui.
que veux-tu que je dises a part que c'est mal concu ?

C'est mal conçu parce que c'est une librairie dynamique. smile En linkant libstdc++ statiquement, on n'a pas ce problème.
Et qu'en penses plus faire du C++ avec des libs dynamiques et pas une tres bonne idee (Car les definitions des classes changent sans arret => Bon plantage). Faut etre rigoureux. Encore plus en C++

Les 2 facteurs contribuent au problème. Les librairies dynamiques autant que le C++. La combinaison est fatale. Vive le C linké statiquement!
a condition d'utiliser le bon compilo (Ex: tigcc v0.93 a v0.94).

On a tout fait pour garder la compatibilité antérieure des sources. D'ailleurs, on entend souvent: "plus rien ne compile sans changements après mise à jour de TIGCC" sans aucun exemple concret. Il faudrait vous mettre dans votre tête que ce n'est pas du tout notre intention, et que si ça arrive, c'est un bogue à reporter immédiatement, avant que des programmes commencent à dépendre du nouveau comportement!
Pas par tous ceux que ca auraient pu interresser.

Mais si. Ceux qui sont vraiment intéressés par ce qui se passe lisent tous les topics. Et puis, il y a toujours une solution: remonter le topic en postant n'importe quoi. grin Même un simple message "up" suffit. smile
Oui. Mais y'a une chance neanmoins.

Comme avec une librairie dynamique. Et la différence est qu'avec la librairie dynamique, tu es obligé de t'adapter à la mise à jour. Pas avec la librairie statique.
Ca serait tellement mieux.

Ah, parce que pour toi, c'est mieux si 32767 (chiffre au hasard) personnes doivent faire le même travail plutôt que si une seule personne doit faire ce travail? Alors là, je ne suis pas du tout d'accord. Dans le premier cas, le travail est multiplié par 32767 par rapport au deuxième cas. Donc 32767 fois plus de temps perdu globalement.
Pas tout a fait... Y'a des trucs qui disparaissent grin

Quoi par exemple? On a supprimé 2-3 trucs qui étaient définis par erreur dans compat.h, qui ne marchaient qu'en mode kernel et qui n'étaient jamais documentés (donc qu'il n'aurait jamais fallu utiliser), et c'est tout.
...
Un code de corruption de certificat ne prend pas plus d'une centaine d'octets...
Bonjour la protection de chez ti sad C'est une des raisons qui me poussent a mettre PedroM.

Tu n'as qu'à reporter le problème à TI. S'il y a une chose qu'ils prennent sérieusement, c'est la protection Flash. Ils ont bien fait en sorte que MaxMem et HW2Patch arrêtent de fonctionner à chaque mise à jour.
Forcement je suis le seul a l'offrir cet technologie. Et tout le monde (sauf, a la rigueur, Pollux) a ete d'accord.

Ça fait déjà un de tes utilisateurs qui est contre, et tu lui forces le changement par dessus. Ce n'est pas ce que j'appelle garder une API compatible. Tu n'as pas à changer le comportement des fonctions existantes de cette manière.
Mais il a fallu la patcher.

Il a fallu la recompiler et c'est tout. Thomas Nussbaumer l'a fait. Donc l'utilisateur n'a rien eu à patcher.
Ca n'a rien a voir !

Si, ça a quelque chose à voir. Le rapport est que j'ai été obligé de choisir les .o dont j'ai eu besoin à la main, et je peux te dire que c'est lourd. C'est tellement plus simple quand on a un .a tout prêt.
Et tu aurais pu les prendre des sources de PedroM grin

1. Ah, parce que les fonctions de TIGCCLIB sont dans les sources de Pedrom maintenant? grin Je te signale que je parle des fonctions de TIGCCLIB là, pas de celles de AMS. C'est peut-être aussi pour ça que tu n'as pas compris le rapport.
2. Pour remplacer les 2 ou 3 fonctions de la ROM qui me manquaient, j'y ai pensé, mais vu l'interdépendance entre tes fonctions, j'aurais été obligé de prendre la moitié de ta ROM juste pour avoir DrawClipRect... J'ai fini par l'implémenter en termes de MoveTo, DrawTo et de hacks avec tios::globals pour implémenter SetCurClip et SetCurAttr.
Mais suffit de mettre des fonctions qui n'utilisent que la lib dynamique ou que du calcul simple.

Ben justement, si les fonctions utilisent la librairie dynamique, tu crées une dépendance entre la partie statique et la partie dynamique, donc un risque de conflit de versions.
Oui. Plus de flexibilite. Toi utilisateur est libre de les mettre a jour.

Pour moi, c'est un désavantage: l'utilisateur est obligé de mettre à jour tout séparément, donc un travail significatif de recherche des versions les plus récentes de chaque librairie. Dans les cas des librairies statiques, il a beaucoup moins de travail à fournir.
Mon header kernel est + petit...

Écoute: juste en comptant les champs obligatoires du header kernel (et pour éviter toute confusion possible: je parle du header des programmes, pas de kernel.h, évidemment), je compte une cinquantaine d'octets (je peux refaire le calcul pour avoir le chiffre exact). Et cela n'est que pour un header complètement vide, sans aucun relogement!
PpHd a écrit :
Et bonjour la compatibilite PedroM !!!!
Et dire que je comptais mettre un max d'ebook !!
Merci !!
mourn

Pleins-toi chez XDanger, c'est lui qui compte changer ça, pas moi. grin
Et comme dit dans l'autre topic, tu n'as qu'à implémenter OO_GetAttr. Même s'il n'y a pas de vrai ACB, il faut quand-même renvoyer les informations les plus demandées. Les fontes en font partie. On n'est plus en 1999. Il faut penser à implémenter les fonctions AMS 2.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

125

Kevin Kofler a écrit :
rotfl
On se demande comment tu comptes utiliser ta secrétaire en lisant cela. grin

de la facon que cela s'utiliser pardi !

Pas si on sait ce qu'on fait. Une règle à suivre: ne jamais copier les headers dans Include. Toujours les inclure au projet avec les .a (et les garder dans le même répertoire que le projet lui-même), comme ça, quand on met à jour la librairie, il suffit de copier tous les fichiers par dessus ceux d'avant.

Mais c'est un argument pour favoriser le support d'une ABI stable.
Je ne dis evidemment pas que c'est a faire.

C'est mal conçu parce que c'est une librairie dynamique. smile En linkant libstdc++ statiquement, on n'a pas ce problème.

C'est mal conçu parce que c'est mal conçu, c'est tout ! Il faut de la rigueur pour faire une lib dynamique !

Les 2 facteurs contribuent au problème. Les librairies dynamiques autant que le C++. La combinaison est fatale. Vive le C linké statiquement!

Le c dynamique marche tres bien.

On a tout fait pour garder la compatibilité antérieure des sources. D'ailleurs, on entend souvent: "plus rien ne compile sans changements après mise à jour de TIGCC" sans aucun exemple concret. Il faudrait vous mettre dans votre tête que ce n'est pas du tout notre intention, et que si ça arrive, c'est un bogue à reporter immédiatement, avant que des programmes commencent à dépendre du nouveau comportement!

Les sources Asm marchent plus sad wink

Mais si. Ceux qui sont vraiment intéressés par ce qui se passe lisent tous les topics. Et puis, il y a toujours une solution: remonter le topic en postant n'importe quoi. grin Même un simple message "up" suffit. smile

On n'est pas forcement interresse par un portage !

Comme avec une librairie dynamique. Et la différence est qu'avec la librairie dynamique, tu es obligé de t'adapter à la mise à jour. Pas avec la librairie statique.

Pas si elle est bien faite !

Ah, parce que pour toi, c'est mieux si 32767 (chiffre au hasard) personnes doivent faire le même travail plutôt que si une seule personne doit faire ce travail? Alors là, je ne suis pas du tout d'accord. Dans le premier cas, le travail est multiplié par 32767 par rapport au deuxième cas. Donc 32767 fois plus de temps perdu globalement.

Mais c'est 32767 devront quand meme le faire pour mettre a jour le programme.

Quoi par exemple? On a supprimé 2-3 trucs qui étaient définis par erreur dans compat.h, qui ne marchaient qu'en mode kernel et qui n'étaient jamais documentés (donc qu'il n'aurait jamais fallu utiliser), et c'est tout.

tu l'as donne ton exemple.

Tu n'as qu'à reporter le problème à TI. S'il y a une chose qu'ils prennent sérieusement, c'est la protection Flash. Ils ont bien fait en sorte que MaxMem et HW2Patch arrêtent de fonctionner à chaque mise à jour.

Deja fait. Depuis ZZZZZZZZzzzzzzzzz..

Ça fait déjà un de tes utilisateurs qui est contre, et tu lui forces le changement par dessus. Ce n'est pas ce que j'appelle garder une API compatible. Tu n'as pas à changer le comportement des fonctions existantes de cette manière.

Oui.

Il a fallu la recompiler et c'est tout. Thomas Nussbaumer l'a fait. Donc l'utilisateur n'a rien eu à patcher.

Si, il a du prendre la derniere version. Merci de devoir mettre a jour tous les programmes.

Si, ça a quelque chose à voir. Le rapport est que j'ai été obligé de choisir les .o dont j'ai eu besoin à la main, et je peux te dire que c'est lourd. C'est tellement plus simple quand on a un .a tout prêt.

Pas si lourd.

1. Ah, parce que les fonctions de TIGCCLIB sont dans les sources de Pedrom maintenant? grin Je te signale que je parle des fonctions de TIGCCLIB là, pas de celles de AMS. C'est peut-être aussi pour ça que tu n'as pas compris le rapport.
2. Pour remplacer les 2 ou 3 fonctions de la ROM qui me manquaient, j'y ai pensé, mais vu l'interdépendance entre tes fonctions, j'aurais été obligé de prendre la moitié de ta ROM juste pour avoir DrawClipRect... J'ai fini par l'implémenter en termes de MoveTo, DrawTo et de hacks avec tios::globals pour implémenter SetCurClip et SetCurAttr.

Desole. J'ai pense a compacter au maximum.

Ben justement, si les fonctions utilisent la librairie dynamique, tu crées une dépendance entre la partie statique et la partie dynamique, donc un risque de conflit de versions.

Mais non, car la lib statique respecte la convention etablie par la lib dynamique au meme titre que le programme ! Elle n'accede a aucune variable interne !

Pour moi, c'est un désavantage: l'utilisateur est obligé de mettre à jour tout séparément, donc un travail significatif de recherche des versions les plus récentes de chaque librairie. Dans les cas des librairies statiques, il a beaucoup moins de travail à fournir.

La meme chose pour tous les programmes. Bonjour l'avantage.

Écoute: juste en comptant les champs obligatoires du header kernel (et pour éviter toute confusion possible: je parle du header des programmes, pas de kernel.h, évidemment), je compte une cinquantaine d'octets (je peux refaire le calcul pour avoir le chiffre exact). Et cela n'est que pour un header complètement vide, sans aucun relogement!

Mais on y gagne avec la table de relogement juste apres !

Pleins-toi chez XDanger, c'est lui qui compte changer ça, pas moi. grin
Et comme dit dans l'autre topic, tu n'as qu'à implémenter OO_GetAttr. Même s'il n'y a pas de vrai ACB, il faut quand-même renvoyer les informations les plus demandées. Les fontes en font partie. On n'est plus en 1999. Il faut penser à implémenter les fonctions AMS 2.

Non. AMS 2 offre des fonctions que je ne peux decemment pas supporter (OO_ etc) sans me faire chier avec les certificats Et c'est tres dangereux.
Je vais me plaindre !

126

> je t'avais envoye un mail y'a un temps pour te le demander. Pas eu de reponse.
Ah bon. Pas vu alors embarrassed

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

127

Je n'ai pas le temps de répondre à tout là, mais une chose que j'avais oubliée quand j'ai posté mon dernier message: le TICT eBook Reader n'a été incompatible avec aucune mise à jour: il fait moins de 8 KO, donc pas de lanceur, et il est compilé séparément pour 89 et pour 92+/V200, donc le problème de la détection V200 ne le concernait pas.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

128

Et je redis que je n'ai aucune intention de supporter PedroM. PpHd pourrait émuler les attributs 0x300, 0x301 et 0x302 de OO_GetAttr (c'est OO_CondGetAttr que j'utilise), ça n'est pas bien difficile (pseudo-code):
OO_CondGetAttr:
si attribut n'est pas 0x300, 0x301 ou 0x302: lancer une erreur, le soft ne tournera pas.
sinon, on renvoie les adresses.

Mais cela ne suffira pas, à cause du hack pas très propre mais stable (ce qui n'est pas le cas des fonts du boot ou de trucs comme ça), utilisé pour AMS 1.xx...

TI-Chess utilise les nouvelles routines, S1P6, tthdex et d'autres, notamment ebook, vont le faire. Les routines sont censées être intégrées à TIGCCLIB à moyen terme.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

129

KK>Ah, parce que pour toi, c'est mieux si 32767 (chiffre au hasard) personnes doivent faire le même travail plutôt que si une seule personne doit faire ce travail? Alors là, je ne suis pas du tout d'accord. Dans le premier cas, le travail est multiplié par 32767 par rapport au deuxième cas. Donc 32767 fois plus de temps perdu globalement.

Je ne suis absolument pas d'accord, en partant dans le principe que chaque personne peut faire ses recherche en meme temps, DONC on NE PEUT PAS METTRE LE TEMPS DE RECHERCHE DE CHAQUE PERSONNE A LA SUITE !

Supposont qu'il faut X temps pour trouver tte les infos et qu'il y ai n personne, il faut donc au minimum X temps pour que tout le monde trouve, et au maximum X*n. La moyenne, et donc la valeur a prendre est (X*n+X)/2 Se qui est loin de faire ton résultat. Et pi perso je reste sur le minimum, cad X, sachant que chaque personne est INDEPENDANTE DES AUTRES.

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

130

C'est exactement parce que chaque personne est indépendante des autres que je multiplie le temps par le nombre de personnes, parce que chacune doit chercher indépendemment pour trouver le meme résultat. La productivité se mesure en personnes * unité de temps. Par exemple en "man months" (personnes * mois). Si 32767 personnes doivent chercher des mises à jour pendant une heure, globalement, 32767 personnes*heures de la productivité mondiale ont été perdues pour cette recherche. Si une seule doit le faire, une seule personne*heure a été perdue.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

131

bah... comme la souligné PpHd, les 32767 utilisateurs devront de toute façons faire la maj du programme.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

132

Ça prend nettement moins de temps que de faire la mise à jour du programme et de chacune des librairies qu'il utilise individuellement.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

133

toutes les librairies ne sont pas forcément maj en même tempssmile
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

134

Avec des librairies statiques, elles le sont: lors de la prochaine mise à jour du programme principal. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

135

donc les libs statique sont bel et bien moins pratique que les lib dynamique en ce qui concene les majsmile
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

136

Pour moi, "plus pratique" = "moins de travail". Donc je préfère avoir un seul programme à mettre à jour.
Prends l'exemple d'une distribution Linux: préfères-tu mettre à jour tes programmes un à un en allant chercher les mises à jour sur les sites officiels des applications sans arrêt, ou préfères-tu attendre la prochaîne version de la distribution? Moi, c'est le deuxième choix. Quand il y a un vrai problème dans une des applications, il y aura un errata immédiatement, et c'est la même chose pour les programmes linkés statiquement quand il y a un vrai problème dans une librairie.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

137

en quoi une maj d'une lib dynamique implique automatiquement la maj de tous les progs qui vont avec???
si c des corrections de bugs, des optimisations vitesse & taille, etc ?
tu fais la maj que de la lib dynamique et c tout... tandisque avec les libs statiques tu mets a jour TOUS les progs.... ya pas foto je trouve smile
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

138

Pour moi non plus. Pour Kevin non plus.
Le truc c'est qu'il refuse de reconnaître cet avantage qu'a le mode kernel. Mais au fond il sait qu'il a tort wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

139

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

140

Thibaut a écrit :
Mais au fond il sait qu'il a tort wink

Arrête de prétendre cela! Ce n'est pas parce que tu n'es pas d'accord avec ce que je dis que tu peux prétendre que j'ai tort.

Je ne vois aucun problème à avoir plusieurs exemplaire d'une librairie si tous sont utilisés. Ce que je ne supporte pas, c'est de voir du code totalement inutilisé.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

141

sBibi a écrit :
en quoi une maj d'une lib dynamique implique automatiquement la maj de tous les progs qui vont avec??? si c des corrections de bugs, des optimisations vitesse & taille, etc ?

Si ce sont des corrections de bogues qui concernent de manière importante le programme qui utilise la librairie.
Sinon, ben on attend la prochaine mise à jour du programme principal, qui intègrera aussi les versions les plus récentes des librairies au moment de la mise à jour.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

142

Je ne vois aucun problème à avoir plusieurs exemplaire d'une librairie si tous sont utilisés. Ce que je ne supporte pas, c'est de voir du code totalement inutilisé.

Ah les phobies de Kevin grin

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

143

Ouais c'est vrai. Kevin, je vois pas pourquoi une observation aussi subjective que ça t'entraîne à dire partout que c'est mieux.
Moi ma phobie c'est de voir du code recopié. Alors je vais aller dire partout que les librairies statiques, c'est de la sous-technologie et que c'est nul...
Non je crois que je préfère laisser chacun choisir...
avatar
;)

144

Le fait est que le code recopié dans le cas statique prend en général moins de place que le code inutilisé dans le cas dynamique.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

145

Ca dépend. Dans le cas d'ExtGraph (300 fonctions avec plein de tailles de sprites différentes), oui. Dans le cas de GenLib, non.

La seule contrainte qu'imposent les libs dynamiques est un minimum de réflexion avant d'ajouter une nouvelle fonction. Si on fait ça n'importe comment, alors on retombe dans le cas d'ExtGraph. Mais par exemple genlib est très bien de ce point de vue là.

Le mieux c quand même de faire une lib dynamique avec les fonctions très utilisées, et une lib statique avec les fonctions plus spécifiques.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

146

En effet, c'est un bon compromis...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

147

Pollux
a écrit : Ca dépend. Dans le cas d'ExtGraph (300 fonctions avec plein de tailles de sprites différentes), oui. Dans le cas de GenLib, non.

Même pas, vu la moyenne de taille des programmes qui utilisent genlib et par conséquent le petit nombre de programmes utilisant genlib qui peuvent être présents sur calculatrice en même temps (1 ou 2 normalement, à la limite 3 en ne mettant vraiment rien d'autre sur sa calculatrice).
La seule contrainte qu'imposent les libs dynamiques est un minimum de réflexion avant d'ajouter une nouvelle fonction.

Corollaire: Les librairies dynamiques ne peuvent pas être flexibles. Il est impossible d'écrire une librairie dynamique qui s'adapte aux nécessités du programme client sans gaspiller une quantité énorme de place. Par conséquent, le programme est obligé de s'adapter à la librairie, ce qui veut souvent dire réduire ses fonctionnalités ou dans le cas de genlib la qualité de ses graphismes.
Conclusion: Les librairies statiques offrent une flexibilité majeure, elles sont donc meilleures.
Si on fait ça n'importe comment, alors on retombe dans le cas d'ExtGraph.

Le cas de ExtGraph est justement le cas désirable. Il y a des tas de fonction proposées, et le programme a la possibilité de choisir celle(s) qui lui convien(nen)t le plus. Une librairie plus flexible est une librairie meilleure.
Mais par exemple genlib est très bien de ce point de vue là.

Pas du tout. C'est l'exemple-même de l'inflexibilité. Par exemple, PpHd a refusé d'ajouter des fonctions de sprites en 4 ndg et pas 3. Pourquoi? Parce que c'est une librairie dynamique, ce qui fait que rajouter des fonctions prend de la place, qu'elles soient utilisées ou non, et que proposer 2 fonctions en alternative veut dire 2 fois la place prise, alors que pour une librairie statique (correctement divisée en fichiers objet séparés), les fonctions inutilisées ne prennent même pas 1 octet sur la calculatrice, et proposer 2 fonctions en alternative veut dire exactement la même place prise qu'en ne proposant qu'une seule fonction.
Le mieux c quand même de faire une lib dynamique avec les fonctions très utilisées, et une lib statique avec les fonctions plus spécifiques.

C'est une mauvaise idée:
* pour les problèmes de version (synchronisation version de la partie statique - version de la partie dynamique)
* pour les raisons de flexibilité décrites ci-dessus: tu ne peux pas proposer des alternatives aux fonctions "très utilisées" (que tu mets dans ta librairie dynamique) sans perdre de la place.
Link
a écrit : En effet, c'est un bon compromis...

Non, c'est une très mauvaise idée. Cf. ci-dessus.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

148

euh... les libs statics et dynamique sont indépendante, donc y a pas de prbm de synchronisation de versionconfus
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

149

Une idée de quelqu'un qui n'y connait rien (ou si peu), mais bon, elle m'avait l'air bonne... Ca ne fera pas plaisir à tout le monde vu que ça nécessite un kernel.

Enfin voila le principe :

Sur la calculatrice, il y a un kernel (qu'on appellera PreOs pour des raisons de commodité wink), et une librairie (notée mainlib par exemple).
Lors de la compilation du programme, le compilateur sort un fichier (genre pack archive) qui contient le programme, et une lib dynamique customisée, qui ne contient que les fonctions dont le programme a besoin.
Ensuite, lors du premier lancement du programme, PreOs décompresse le pack archive, sort la librairie, intègre à mainlib les fonctions qui n'en font pas déjà partie (et uniquement elles), et éxécute le programme. Ce serait bien sur fait de manière transparente.

Comme ça, on aurait sur la calculette uniquement les fonctions effectivement utilisées, et en un seul exemplaire, ça combinerait donc les avantages des deux méthodes.

C'est con, ou c'est crédible ?
avatar
I'm on a boat motherfucker, don't you ever forget

150

MacIntoc a écrit :
euh... les libs statics et dynamique sont indépendante, donc y a pas de prbm de synchronisation de versionconfus

Si elles sont indépendantes, ce n'est plus une librairie, mais 2 librairies totalement séparées. Sinon, elles ne sont pas indépendantes.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité