π
<-

Connaissez-vous bien GTC ?

Programmation et implémentation d'algorithmes.

Re: Connaissez-vous bien GTC ?

Unread postby Bisam » 14 Feb 2011, 20:52

Je rouvre ce fil pour que Lionel y jette un oeil...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Connaissez-vous bien GTC ?

Unread postby Folco » 14 Feb 2011, 20:57

Wow, ça remonte. Tu en es où de tes problèmes exactement ?
User avatar
Folco
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 21.5%
 
Posts: 150
Joined: 23 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: anapu :p

Re: Connaissez-vous bien GTC ?

Unread postby Bisam » 14 Feb 2011, 21:16

Pour être franc, ça fait un bon moment que je n'ai plus mis le nez dedans (plusieurs mois...)

Après avoir relu le fil, je me rappelle 2 problèmes que j'avais rencontrés :
1) Récupérer la valeur d'un entier sur la pile pour le convertir en un entier 8 bits (je n'ai pas besoin de plus) afin de mener certains calculs en C sans passer par la pile.
2) Faire le travail inverse, c'est-à-dire envoyer un entier 8 bits sur la pile, puis le renvoyer comme résultat de la fonction.

L'idée de l'architecture du projet est la suivante :
1) Une fonction "valu", récursive, travaille sur la pile pour calculer la valuation d'une expression. Elle est censée renvoyer un "shortint" à la fonction principale "main".
2) La fonction "main" utilise moult fonctions pour calculer à la main les DL sans passer par la pile, en utilisant à plusieurs endroits l'expression passée en argument dans la pile et le résultat de la fonction "valu"... là, je sais que je vais passer un sale quart d'heure car la gestion de listes de taille variable en C, c'est pas le pied. Mais passons.
3) Une fonction "résultat" crée une liste dans la pile en tant que résultat final de la fonction et renvoie son adresse à "main" qui n'a plus qu'à conclure.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Connaissez-vous bien GTC ?

Unread postby Folco » 14 Feb 2011, 21:45

Tu t'es déjà penché sur les fonctions de estack.h j'imagine ?
User avatar
Folco
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 21.5%
 
Posts: 150
Joined: 23 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: anapu :p

Re: Connaissez-vous bien GTC ?

Unread postby Bisam » 14 Feb 2011, 22:37

Yep... mais j'ai pas tout appris, ni tout compris.

En plus, plusieurs d'entre elles ne sont pas implémentées dans GTC...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Connaissez-vous bien GTC ?

Unread postby Lionel Debroux » 15 Feb 2011, 06:48

GTC n'a pas eu le succès qu'il mérite, à  cause de qui vous savez qui l'a constamment dénigré...
Je regarderai ce topic plus en détail ce soir :):
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Connaissez-vous bien GTC ?

Unread postby Folco » 15 Feb 2011, 10:06

Oué, l'estack c'est plus de ton ressort que du mien. PedroM powa, int main (int argc, const char** argv) rulez :D:

Bisam - Pour info, GTC a été reporté comme produisant du code plus rapide et petit que TIGCC (tests à l'époque). C'est amha un produit de très haute qualité.
User avatar
Folco
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 21.5%
 
Posts: 150
Joined: 23 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: anapu :p

Re: Connaissez-vous bien GTC ?

Unread postby Lionel Debroux » 15 Feb 2011, 11:00

Je pourrais sans doute la transformer pour qu'elle renvoie un "ESI" et faire tous les (autres) calculs qu'elle fait à  travers la pile mais ce serait une perte de temps faramineuse à  mon avis.

En interne, c'est ce que fait AMS :):
GetIntArg fera ce que tu veux pour de "petites" valeurs entières, mais ça va merdouiller dès que ça sera au-delà  des bornes.

J'ai une expression qui s'écrit f(x)^g(x) dans ma pile.
Par conséquent, j'ai d'abord un "POW_TAG" puis toute une suite d'expressions décrivant g(x) puis toute une suite d'expressions décrivant f(x).

factor_base_index / factor_exponent_index.
Je calcule la limite en 0 de g(x) et j'en prends la partie entière (jusque-là , c'est facile).

push_lim, et push_integer_part (ou similaire, suivant l'arrondi que tu veux)




Même si l'échantillon de tests était très petit (et ni Thibault Barthélémy, ni évidemment Kevinou, n'ont jamais pris la peine de l'étendre), GTC était en effet assez compétitif par rapport à  GCC. Pollux a fait un très bon travail.
GTC est fait spécifiquement pour le 68000, alors que GCC prend un certain nombre de décisions qui pessimisent le code sur 68000 (malgré plusieurs modifs éparpillées dans le fork TIGCC/GCC4TI de GCC 4.1.x, visant à  le contrecarrer) alors qu'ils l'améliorent en général pour les x86.

Je connais deux manques de GTC:
* l'un est gênant à  l'utilisation: c'est l'absence de support de la définition explicite de registres pour les paramètres de fonction. Ceci ferme à  GTC les dizaines de programmes qui utilisent des librairies comme ExtGraph.
* l'autre est lié au linker moins avancé que celui de TIGCC = 0.95 / GCC4TI (forcément - ce dernier bouffe des MBs de RAM, alors que GTC a pour but de faire quelque chose avec moins de 150K), et gênant pour la maintenance de GTC, mais pas pour l'utilisateur: le code de startup est toujours similaire à  celui de TIGCC
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Connaissez-vous bien GTC ?

Unread postby Ti64CLi++ » 10 Feb 2016, 11:41

Je sais que ça remonte mais j'en profite pour poser quelques questions plutôt que de créer un topic:
1)Est-il possible de faire des PopUps(j'ai essayé l'exemple de TI GCC mais les fonctions PopUpBegin et PopUpBeginDo n'existe pas)?
2)Même question mais pour les barres de chargement (pareil, l'exemple de TI GCC ne marche pas)?
3)Comment je peux faire pour vérifier si une touche est appuyé sans attendre son appuie et donc sans utiliser getchar()? Existe il une fonction getkey() comme en Basic?
4)Est-ce normal que une fois sur trois, je dois enlevé une pile car j'ai une erreur inconnu : une barre noir en haut (comme pour Error Adress mais sans le Error Adress ^^) et je suis obligé de faire [2nd] [hand] et [on] et ensuite, je dois enlever une pile et la calculatrice redemarre en me disant 'Installation in progress... Do not interrupt'?

Merci d'avance
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Connaissez-vous bien GTC ?

Unread postby Bisam » 10 Feb 2016, 18:00

Pour le point 4), je pense que c'est malheureusement dû à une fuite de mémoire du compilateur (Il alloue de la mémoire et oublie de la libérer à la fin). Au bout d'un certain temps, il n'y a plus de mémoire disponible même pour le logiciel de la calculette... et celui-ci plante.
Du coup, il est nécessaire de réinstaller l'OS après avoir débloqué la situation.

En moyenne, j'avais constaté qu'on pouvait compiler une dizaine de fois (fonction de la RAM disponible, bien évidemment) avant que cela n'arrive. Par ailleurs, on peut remarquer qu'il n'est pas nécessaire d'enlever une pile si on réinstalle l'OS avec [2nd]+[Lock]+[ON] avant le blocage total.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2965 utilisateurs:
>2947 invités
>10 membres
>8 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)