90

Kevin Kofler (./88) :
Et la seule raison pour laquelle il y a compatibilité apparente sur la Titanium est que PpHd s'amuse à patcher les programmes dans le kernel sans rien demander à l'utilisateur, ce que je trouve une très mauvaise idée (si le programme n'était pas archivé, il est modifié sans préavis et va planter s'il est envoyé à autre chose qu'une Titanium). Un outil comme GhostBuster est plus adapté (ne fait rien sans demander l'avis de l'utilisateur, on n'est pas obligés de patcher les programmes qui n'en ont pas besoin et risquer un faux positif qui casse le programme, patche aussi des problèmes que PreOs ne peut pas patcher, par exemple tout programme utilisant une ancienne version des niveaux de gris de TIGCCLIB ne fonctionnera pas avec l'autopatcheur de PreOs, permet aussi d'enregistrer la version patchée sous un autre nom pour garder une version qui peut être envoyée aux autres calculatrices).


Installe le alors avec preos("strict_calculator")
Il sera strict sur la variable CALCULATOR.

91

92

PpHd (./90) :
Installe le alors avec preos("strict_calculator")Il sera strict sur la variable CALCULATOR.

Du coup on ne peut plus du tout lancer les anciens programmes, même s'ils n'ont pas besoin d'être patchés, et même si on les patche avec GhostBuster (parce que GhostBuster ne peut pas mettre le flag _ti89ti à cause du problème du prochain paragraphe).
Martial Demolins (./89) :
et que le test se résumait souvent à tst.b CALCULATOR / bpl machin

Justement, tu viens de soulever un autre problème là. Le test est normalement un bne dans les programmes prédatant PreOs 0.70, pas un bpl. PreOs utilise donc CALCULATOR==0 pour les programmes qui n'ont pas le flag Titanium et CALCULATOR==-1 pour ceux qui l'ont. Du coup ça empêche de mettre le flag dans un patcheur comme GhostBuster. Cette définition est aussi inconsistente avec celle de TIGCC (du coup TIGCCLIB est obligé de traduire* la valeur de CALCULATOR en mode kernel sick) et des premiers kernels pour la Titanium (TitaniK et Iceberg). De plus, CALCULATOR a toujours été non signé dans TIGCC, donc la valeur -1 n'a aucun sens.

Mais ça fait longtemps que je dis tout ça à PpHd (depuis PreOs 0.70 au moins, même avant sa sortie officielle si je me rappelle bien) et il n'a pas tenu compte de mes remarques.

* traduire comme ça:
/* PreOs 0.70 says CALCULATOR is -1 on the Titanium. We don't. */
#define CALCULATOR ((signed char)_CALCULATOR[0]>0?_CALCULATOR[0]:0)

Heureusement que GCC est capable d'optimiser les tests les plus courants (if (CALCULATOR), if (!CALCULATOR), if (CALCULATOR==constante)).
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é

93

Tiens ca me fait penser Kevin que je t'ai pas dit pourquoi je preferais le Kernel (Soyons constructifs et ne devions pas en troll comme l'autre fois ^^') :
Les Libs! Je trouve ca super pratique! (Un seul code ecrit une seule fois pour plusieurs programmes #trilooooooooove# )
Enfin voilà, mais sinon je suis d'accord avec le fait que CALCULATOR est a se tirer les cheveux dans l'état actuel des choses trigic
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

94

Dude (./93) :
Tiens ca me fait penser Kevin que je t'ai pas dit pourquoi je preferais le Kernel (Soyons constructifs et ne devions pas en troll comme l'autre fois ^^') :Les Libs! Je trouve ca super pratique! (Un seul code ecrit une seule fois pour plusieurs programmes #trilooooooooove# )

=> libraries statiques tongue Beaucoup plus pratiques sur calculatrice, et fonctionnent nativement, sans devoir mettre un noyau par dessus le noyau.
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é

95

Oui mais si j'ai bien compris ca t'embarque le code dans le programme non ? tongue
Donc, (exemple) 3 programmes utilisant la meme lib statique, reviens a dire : 3 programmes contenant 3 fois ce meme code couic
C'est pas ce que j'appelle une économie de place magic tongue
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

96

Mais c'est vrai qu'apres tu peux faire le raisonnement inverse :
1 programme qui "tire" sur 3 libs (n'utilisant qu'une seule fonction de chaque sick )
Mais en général tu n'as pas qu'un seul prog sur ta calc ou alors pour le coup c'est ce que j'appelle une perte de place xD magic
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

97

(a propos de ce qui a été dit en page 3 sur la GPL, il faut savoir qu'en dehors des US elle a globalement aucune autre valeur que symbolique cette license, et qu'en france elle n'en a vraiment aucune, donc la FSF peut poser autant de plainte quelle veux en france, elle sera toujours débouté pour du GPL, sauf peut etre pour certain cas trop flagrant mais bon c'est pas sur ce genre de choses qu'ils se "battent" )

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.

98

Dude (./95) :
Oui mais si j'ai bien compris ca t'embarque le code dans le programme non ? tongue
Donc, (exemple) 3 programmes utilisant la meme lib statique, reviens a dire : 3 programmes contenant 3 fois ce meme code couic
C'est pas ce que j'appelle une économie de place magic tongue

On a eu cette discussion à peu près 10000 fois. roll L'avantage des librairies statiques au point de vue taille est que seulement les fonctions effectivement utilisées sont incluses.

Et sinon, c'est nettement plus pratique pour l'utilisateur (pas besoin d'installer un kernel, aller trouver la bonne version de la librairie et l'envoyer), ce qui vaut bien un peu plus de place consommée (dans le pire des cas seulement). La place peut s'économiser ailleurs (en optimisant en taille plutôt qu'en vitesse par exemple tongue).
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é

99

Godzil (./97) :
(a propos de ce qui a été dit en page 3 sur la GPL, il faut savoir qu'en dehors des US elle a globalement aucune autre valeur que symbolique cette license, et qu'en france elle n'en a vraiment aucune, donc la FSF peut poser autant de plainte quelle veux en france, elle sera toujours débouté pour du GPL, sauf peut etre pour certain cas trop flagrant mais bon c'est pas sur ce genre de choses qu'ils se "battent" )

C'est un troll ça. La GPL a été reconnue comme parfaitement valide en Allemagne, dont les lois sur les droits d'auteurs sont beaucoup plus proches à celles de France que des USA.
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é

100

(va le dire au juristes alors que c'est un troll neutral)
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.

101

Kevin Kofler (./98) :
On a eu cette discussion à peu près 10000 fois. roll

Oui bah je m'en doute bien et je te donne tout a fait raison sur "l'economie" de place realisée hehe

Par contre, là [edit] où [/edit] les librairies kernel ont un avantage enorme sur les statiques c'est pour la maintenabilité :
Mettons que je sorte un jeux (ou autre) utilisant une fonction de compression d'une lib statique. Je compile tout ca, je release.
Le probleme c'est que si je disparait de la circulation, et qu'un bug est trouvé dans la lib statique de compression...ben...Obligé de recompiler.
Avec une lib kernel, ya juste a mettre la lib jour.

D'un point de vue purement utilisateur c'est quand meme plus simple de changer un fichier sur sa calc que de se plonger dans son compilateur préféré et de mettre a jour la lib pour recompiler (et encore faut-il que le code soit libre!) picol zzz

(Bon aller j'arrete car je sais meme plus qui a eu la bonne idée de lancer un kernel vs nostub xD wink )
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

102

Bah, il faut de toute façon recompiler ses programmes de temps en temps, ou alors permettre à quelqu'un d'autre de le faire (en sortant les sources sous une licence qui permet de recompiler), pour les nouvelles versions matérielles et logicielles de TI (enfin bon, ce problème n'est probablement plus aussi actuel maintenant qu'à l'époque, mais on ne sait jamais). Les patcheurs (automatiques ou non, là n'est pas la question) font des miracles parfois, mais ce n'est qu'un workaround et ça ne peut pas fonctionner pour toutes les incompatibilités possibles, la solution idéale est la recompilation. Et du coup, on peut aussi recompiler avec une librairie statique plus récente tant qu'on y est.

Un autre avantage des libraries statiques est qu'on n'a besoin de maintenir que la compatibilité source, pas la compatibilité binaire, donc on peut modifier plus de choses (par exemple TIGCCLIB a pu passer des fonctions du passage d'arguments sur la pile au passage par registres, plus compact et plus rapide). Avec les librairies dynamiques, un tel changement aurait causé la fameuse DLL hell, surtout étant donné qu'il n'y a pas de système de versions convenable (le système de versions de PreOs équivaut au minor de libtool, il manque l'équivalent du major, c'est-à-dire du changement incompatible dans les 2 sens où il faut prévoir les 2 versions de la librairie en même temps, on est obligés de changer le nom du fichier, et du coup aussi le nom de tous les imports et exports, si on fait ça). De plus, devoir installer 2 versions incompatibles d'une librairie en parallèle veut aussi dire 2 fois plus de place prise (on perd l'avantage du code partagé). Donc il faut là aussi tout recompiler avec la nouvelle version.
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é

103

Kevin Kofler (./102) :
il manque l'équivalent du major, c'est-à-dire du changement incompatible dans les 2 sens où il faut prévoir les 2 versions de la librairie en même temps, on est obligés de changer le nom du fichier, et du coup aussi le nom de tous les imports et exports, si on fait ça)

Et c'est très bien comme çà.
Kevin Kofler (./92) :
Le test est normalement un bne dans les programmes prédatant PreOs 0.70, pas un bpl. PreOs utilise donc CALCULATOR==0 pour les programmes qui n'ont pas le flag Titanium et CALCULATOR==-1 pour ceux qui l'ont. Du coup ça empêche de mettre le flag dans un patcheur comme GhostBuster.

Bug de ghostbuster, c'est tout.
Godzil (./97) :
(a propos de ce qui a été dit en page 3 sur la GPL, il faut savoir qu'en dehors des US elle a globalement aucune autre valeur que symbolique cette license, et qu'en france elle n'en a vraiment aucune, donc la FSF peut poser autant de plainte quelle veux en france, elle sera toujours débouté pour du GPL, sauf peut etre pour certain cas trop flagrant mais bon c'est pas sur ce genre de choses qu'ils se "battent" )

Normalement, la GPL3 a corrigé ce problème.

104

PpHd (./103) :
Bug de ghostbuster, c'est tout.

Écoute, tu veux qu'on mette ce flag comment? Qu'on patche tous les tests de CALCULATOR? Je te laisse écrire le code. gni

Je ne vois vraiment pas l'intérêt d'avoir mis CALCULATOR à une valeur non-nulle sur Titanium, ça ne fait que casser des choses et n'apporte rien.
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é

105

106

Une valeur positive aurait aussi cassé pas mal de trucs, et rendu les tests très inefficaces. La seule valeur compatible est 0 comme sur TI-89. Et comme il y a "TI-89" dans le nom "TI-89 Titanium", ça tombe bien. tongue Pour TIGCC, la Titanium est une TI-89 HW3 ou HW4 tout simplement. De toute façon, si on code quelque chose qui dépend de la version matérielle, c'est HW_VERSION qu'il faut tester, pas CALCULATOR. Toutes les différences qu'un programme pourrait remarquer entre la TI-89 classique et la TI-89 Titanium sont dues à la version matérielle, si TI sortait une Voyage 200 HW3 ou HW4, il y aurait de fortes chances que ça serait pareil. (Cela dit, TIGCC définit TI89_CLASSIC et TI89_TITANIUM pour ceux qui veulent absolument distinguer, c'est implémenté en testant CALCULATOR et HW_VERSION.)
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é

107

ah oui je comprends, je suis d'accord.

108

109

> Imagine si on devait recompiler toutes nos applications à chaque bugfix ou update des KDElibs ou je ne sais quel fichier système...
Ca serait très pénible, en effet.
Mais tu ne peux pas comparer un desktop/laptop moderne à une TI-68k: les contraintes ne sont vraiment pas les mêmes ^^

Il n'y a pas de sous-ensemble commun de routines suffisamment petit et suffisamment largement utilisé pour qu'on puisse faire une lib dynamique utilisée par tous. Il y a plusieurs modèles de libs de niveaux de gris, plusieurs modèles de compression, plusieurs modèles de librairies graphiques avec des philosophies différentes, etc.
Même si pour chacun des trois types de routines que j'ai mentionnés, il y a un modèle qui est nettement majoritaire (TIGCCLIB; ttunpack; ExtGraph), les deux premiers ont chacun au moins deux implémentations (TIGCCLIB mainline / fork avec les plans consécutifs; ttunpack_small / ttunpack(_fast-_large), on ne l'appelle pas tous de la même façon grin).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

110

111

Martial Demolins (./108) :
Pour moi les vraies traductions sont en assembleur, là je comprends rien! grin

Le CALCULATOR de TIGCC n'existe qu'en C de toute façon. (En assembleur, il faut utiliser __calculator directement en _nostub, et la RAM_CALL directement en kernel.)
stdlib est là pour ça. tongue Surtout que les libs comprises dedans n'évoluent plus depuis un bon moment (les denières maj sont de graphlib et genlib si je ne m'abuse).

Et si elles évoluaient? roll Ou si on veut utiliser des libs effectivement maintenues? roll Tout ce que ça me dit, c'est que ces libs sont obsolètes et pas du tout maintenues.
Je suis pas d'accord, si on a de la place en mémoire, alors on s'en fout qu'un seul programme vienne avec toutes ses fonctions de lib statiques.Si on manque de place, on a donc beaucoup de programmes, et il n'est absolument pas dit que l'overhead du kernel dépasse celui de la duplication du code dans tous ces programmes.

Une fois de plus, il y a en général des endroits meilleurs pour économiser de la place, il suffit de regarder tous les programmes compilés en -O2 voire -O3 à la place de -Os. Ou genlib, où même la version "small" pourrait probablement être 2 fois plus petite, et la version "standard" gaspille encore plus de place.
Imagine si on devait recompiler toutes nos applications à chaque bugfix ou update des KDElibs ou je ne sais quel fichier système...

GNU/Linux gère les librairies partagées nativement, avec un système de versions convenable et surtout avec un logiciel (apt, yum, urpmi, smart, emerge, ...) qui permet à l'utilisateur d'installer un programme et d'avoir automatiquement toutes les libs qui vont avec! Sur TI, on n'a rien de tout ça.
ttunpack(_fast-_large), on ne l'appelle pas tous de la même façon grin

Euh, je l'ai toujours appelé ttunpack_fast, moi, mais je peux l'appeler ttunpack_large si tu insistes. gni
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é

112

113

la pile TCPIP c'est moi
si ça intéresse des gens tant mieux
le pb actuellement c'est plutot au niveau physique que IP.
par exemple, est ce que le PC peut recevoir de manière asynchrone des octets du link? le black link peut pas, le silverlink je sais pas.
Si qn m'aide à résoudre ça, je veux bien continuer à chercher.

114

> A mes débnuts sous Linux, j'avais pas le net, je te parle pas de la galère quand je téléchargeais un programme à la boite, puis que je passais une semaine à télécharger des dépendances le matin pour les installer le soir. Donc le système n'est pas si parfait que ça.
Le système n'est clairement pas parfait - aucun ne l'est de toute façon - mais les problèmes de dépendances sont quelque chose que certaines distros ont résolu depuis longtemps. Quelle distro utilisais-tu ? Si c'est Slackware ou Gentoo (ou une distro dérivée qui ne proposerait pas de système de dépendances au-dessus du système de packages), forcément, c'est moins simple grin

Samir Ribic, entre autres, avait également fait une pile TCP/IP, il y a très longtemps.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

115

et elle a marché?

Moi ce qui m'énerve c'est que si la calc envoie un truc, et que le PC est pas en train de l'attendre, ça marche pas.

116

http://www.ticalc.org/archives/news/articles/4/43/43965.html

Samir Ribic has released a TCP/IP Suite for the TI-89. Guess what, kids? Yup, that's right. You can get on the Internet with your TI-89 now! You'll be able to use SLIP, IP, TCP, FTP, SMTP, POP3, and HTTP with this program. Imagine the possibilities. Anyway, the readme to this suite has good directions on using it, so be sure to read it carefully. In short, you'll need a gray Graph Link and a DOS Internet server to get this thing working.
Mais maintenant, il n'y a plus trop de gray Graph Link ni de DOS grin
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

117

C'est quoi le problème ? Tant que la TI émet, elle ne peut pas recevoir ?
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.

118

squalyl (./113) :
par exemple, est ce que le PC peut recevoir de manière asynchrone des octets du link? le black link peut pas, le silverlink je sais pas.

Le SilverLink peut fonctionner en asynchrone (USB asynchrone). Pour le BlackLink, il y a quand-même la possibilité de faire un polling pour voir si quelque chose est arrivé sur le link, cf. ticables_cable_check. Pour le BlackLink, le test effectué est:
  	if (!((ser_io_rd(dev_fd) & 0x30) == 0x30)) 
    		*status = (STATUS_RX | STATUS_TX);

(Ça vérifie si la calculatrice a baissé une des deux lignes.)
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é

119

Martial Demolins (./112) :
- A mes débnuts sous Linux, j'avais pas le net

Bah il est là ton problème. grin

L'accès Internet est condition nécessaire pour que la récupération automatique des dépendances fonctionne, les dépendances ne peuvent pas être récupérées par télépathie. grin Cela dit, il y a quand-même une solution maintenant: http://fedoraproject.org/wiki/DebarshiRay/Opyum. Mais c'est tellement plus simple de connecter son PC à Internet tout simplement, d'autant plus que ça sert énormément d'être connecté de nos jours (e-mail, WWW etc.).
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é

120