Qui connaît TIGCC ?

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Re: Qui connaît TIGCC ?

Message par jxano »

La pratique du C sur TI92 (pas sur 89, le clavier alpha est rédhibitoire) m'aurait sacrément alléché... Mais d'abord quelques mots sur le type d'utilisateur que je suis.

Pour compiler, je n'utilise en ligne de commande que "cc -o prog prog.c" (ou un autre nom de programme). Dans un environnement intégré, la touche Compile & Exécute me suffit. Je ne m'embête pas avec les directives de compilation, makefiles et autres variables d'environnement.

Dans mon programme, je n'utilise que deux bibliothèques : stdio et string, et je fais tout avec. Eventuellement, il m'est arrivé d'utiliser stdlib pour ressortir des commandes genre fseek() pour faire de la découpe d'images BMP.

J'édite et je compile sur la machine qui compile et exécute le code. Si je dois brancher ma calculette au grozordi pour voir le code, ça me défrise. La calculette, c'est pour emmener dans le bus...

Donc quand je m'enfourne des tartines indigestes parlant de bibliothèques dynamiques, de remises à jour pour faille de sécurité (je m'en fous, je ne diffuse ni mon code, ni mes données) ou d'émulateurs qui ont leurs limites... Si je dois rattraper le siège qui se barre en route pour le rattacher au pare-brise de l'auto, je capitule.
Programmeur abscons.
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: Qui connaît TIGCC ?

Message par jvernet »

Hello,

Ayant acquis une V200 à vil prix, je me suis vite mis à la recherche d'un outil pour bricoler cette machine, GCC4TI installé, et je trouve ça top.

j'ai repris quelques vieilles sources de bricolages graphiques en C experimentés sur un Atari MegaSTE en mode monochrome, rotation de cubes, de sphéres, etc, starfield, c'est quasiment instantané à porter, c'est marrant.

Les perfs de la TI sont pas géniales, malgré l'usage du même proc et 4 Mhz d'écarts. peut être les instructions graphiques sont elles beaucoup plus lentes sur la TI.

Est ce que l'on peut utiliser ExtGraph sur une V200 ?
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: Qui connaît TIGCC ?

Message par jvernet »

Je me répond à moi même; on peut utiliser ExtGraph sur V200. Il faut parfois retoucher les scripts builtdemos, sinon, il ne produit pas les binaires.
Ca marche achtement bien, on peut faire des choses sympathiques avec !
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
debrouxl
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 125
Enregistré le : 03 mars 2013 09:01

Re: Qui connaît TIGCC ?

Message par debrouxl »

builddemos produit une majorité d'exécutables compatibles on-calc entre tous les modèles. Ca fait longtemps que je n'ai pas essayé de compiler ExtGraph, mais ça fait également longtemps que la toolchain ou le code d'ExtGraph ne changent plus ^^
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: Qui connaît TIGCC ?

Message par jvernet »

Hello

Dans les scripts, il manque un \ ou un / et la création si n'existent pas des dossiers recevant les binaires /BINTI89/, /BINV200/ etc.
La çà compile et ça écrase à chaque fois le fichier BIN200. Pas gravissime.

Sinon, j'ai réussi à compiler gcc4ti et a l'installer sur un Debian 9. J'ai aussi réussi à configurer CodeBlocks pour utiliser tout ça, j'ai un peu de mal à trouver les bonnes options a passer au linker(appel à tigcc comme on le ferait de gcc puis ld-tigcc,mais les options n'ont rien à voir avec ld.

Sous Debian 9 instable, il y a un tiemu 3.04, qui marche aussi, à part l'émulation du clavier, complètement fuckedup en azerty.

Bref, j'ai de quoi jouer(me manque une Ti88 et une TI92+ pour être complet).
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
debrouxl
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 125
Enregistré le : 03 mars 2013 09:01

Re: Qui connaît TIGCC ?

Message par debrouxl »

Sinon, j'ai réussi à compiler gcc4ti et a l'installer sur un Debian 9.
C'est bien d'en avoir la confirmation, mais c'est en effet censé fonctionner :)
Les travaux de maintenabilité qu'on avait faits à une époque payent, des années plus tard.
J'ai un peu de mal à trouver les bonnes options a passer au linker(appel à tigcc comme on le ferait de gcc puis ld-tigcc,mais les options n'ont rien à voir avec ld.
Hmm... Appeler `ld-tigcc` directement n'est pas recommandé, mieux vaut l'appeler à travers `tigcc`.
Sous Debian 9 instable, il y a un tiemu 3.04, qui marche aussi, à part l'émulation du clavier, complètement fuckedup en azerty.
Oh, il n'y a pas qu'en AZERTY que l'émulation des touches spéciales ne fonctionne pas... ça fait des années qu'il en est ainsi.
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: Qui connaît TIGCC ?

Message par jvernet »

je ne suis pas arrivé à faire comprendre à codeblock qu'il peut se passer de linker..... Il veut systématiquement compiler (.o) puis linker.

Bon, globalement, ça marche, vais pas me prendre la tête ;). a la rigueur, chercher les options standard à passer au linker (optimisations)
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
debrouxl
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 125
Enregistré le : 03 mars 2013 09:01

Re: Qui connaît TIGCC ?

Message par debrouxl »

Je retombe sur ce topic en cherchant autre chose avec un moteur générique... amusant :)

Un élément d'info sur les toolchains: plus le temps passe, plus c'est difficile de cibler le m68k...
Je savais depuis des années qu'il y avait des pessimizations dans la série GCC 4.x, par exemple https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40454 . Maintenant, c'est autre chose: en essayant récemment d'utiliser la cross-toolchain GCC 8 m68k ELF générique packagée par Debian, je me suis rendu compte qu'il y a de gros problèmes de génération de code.
J'ai vu plusieurs Internal Compiler Errors, et plus grave, de la génération de code incorrect (dans un certain contexte) pour une lecture octet par octet, de casts et de shifts pour constituer une valeur 32 bits (sans faire de shift d'un nombre de rangs supérieur à la largeur du type - ça, c'est du comportement indéfini et le compilo a le droit de faire n'importe quoi)...

Le but était de faire des programmes spéciaux (sans relocations) pour TI-68k/AMS et TI-92/Fargo, sans utiliser la toolchain non standard et lourdement obsolète que contient GCC4TI. Eh bien, il est clair que les GCC m68k modernes ne sont pas une solution envisageable :)
Pour éviter cet autre cauchemar de maintenance, j'ai donc dû réécrire le programme en ASM pur, pour ne nécessiter que les binutils m68k-linux-gnu-as et m68k-linux-gnu-ld. C'est aussi significativement plus optimisé, mais ça prend beaucoup plus de temps à développer, même si je me suis fait aider du compilo C en préparant le travail jusqu'à un certain point en C.
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7141
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: Qui connaît TIGCC ?

Message par gege »

Bonjour,
Cool, la pérennité est-elle bien meilleure ?
L'utilisation d'un compilateur C très très simple (même si très très lent) est-elle possible ?
C'est donc ciblé sur Linux ? Argh.
Peut-on simplement garder une vieille version de gcc ?
Merci pour tes efforts qui ne seront pas (évidemment) appréciés à leur juste valeur... :-(
G.E.
debrouxl
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 125
Enregistré le : 03 mars 2013 09:01

Re: Qui connaît TIGCC ?

Message par debrouxl »

gege a écrit :Cool, la pérennité est-elle bien meilleure ?
Manifestement, la pérennité de GCC m68k est également mauvaise, pour des raisons différentes de celles de GCC4TI. A moins que de très improbables personnes passent un temps fou sur le sujet (des mois à plein temps pour se plonger dans les entrailles de GCC, debugger les diverses étapes de la génération de code à partir des testcases qui montrent des problèmes, développer et faire reviewer des patches, écrire et effectuer des tests), mais je n'en ferai évidemment pas partie :)
J'aurais cru que la scène Amiga avait préservé un peu les m68k du déclin, mais pas assez.
L'utilisation d'un compilateur C très très simple (même si très très lent) est-elle possible ?
Pour du code qui utilise lourdement les spécificités d'un GCC patché, ce qui est le cas des headers et de la lib de GCC4TI, et donc de la grande majorité des programmes pour TI-68k, en pratique, ce n'est pas réaliste.
C'est donc ciblé sur Linux ? Argh.
Les GCC target=m68k devraient également être compilables pour host=win32. C'est juste que Debian fournit un GCC m68k ELF précompilé, et j'ai donc d'abord essayé de l'utiliser, avant de passer en ASM pur (ce que j'aurais de toute façon fait si ce GCC m68k n'avait pas été packagé par Debian, pour ne dépendre que de binutils m68k ELF, que je savais être packagé).
Peut-on simplement garder une vieille version de gcc ?
C'est la situation actuelle, mais elle est de plus en plus difficile à tenir... Ca fait déjà des années qu'il faut soit debugger au moins un problème de génération de code invalide qui se produisent sur des distros plus modernes, soit rester à des distros anciennes pour (cross-)compiler le GCC 4.1.2 lourdement patché de GCC4TI. Je dois bientôt refaire un build Win32 de la toolchain GCC4TI pour un utilisateur, il va falloir que je le produise à partir une VM Debian 7.x ("wheezy", série qui a commencé en 2013 et s'est terminée en 2016 ou 2017)... Les builds natifs pour Linux sont moins affectés que les cross-builds pour Windows, les builds natifs jusqu'à GCC 5 (qui a donc déjà presque 4 ans) ne montrent pas le problème de génération de code invalide sus-mentionné, dont j'ai oublié les détails.
Avant de m'amuser à créer une VM, j'ai bien sûr essayé d'utiliser un conteneur Docker tournant sur une distro moderne, et vite vu que trop de binaires de Debian wheezy ne tournent pas dans de pareilles conditions, parce qu'ils utilisent encore vsyscall, qui est désactivé par défaut, voire en temps de compilation du kernel, sur toutes les distros modernes, pour des raisons de sécurité...
Répondre

Retourner vers « Tous les Pockets »