Connaissez-vous bien GTC ?
Re: Connaissez-vous bien GTC ?
Je rouvre ce fil pour que Lionel y jette un oeil...
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5665
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: Connaissez-vous bien GTC ?
Wow, ça remonte. Tu en es où de tes problèmes exactement ?
-
Folco
Niveau 8: ER (Espèce Rare: nerd)- Messages: 150
- Inscription: 23 Sep 2010, 00:00
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: anapu :p
Re: Connaissez-vous bien GTC ?
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.
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.
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5665
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: Connaissez-vous bien GTC ?
Tu t'es déjà penché sur les fonctions de estack.h j'imagine ?
-
Folco
Niveau 8: ER (Espèce Rare: nerd)- Messages: 150
- Inscription: 23 Sep 2010, 00:00
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: anapu :p
Re: Connaissez-vous bien GTC ?
Yep... mais j'ai pas tout appris, ni tout compris.
En plus, plusieurs d'entre elles ne sont pas implémentées dans GTC...
En plus, plusieurs d'entre elles ne sont pas implémentées dans GTC...
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5665
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: Connaissez-vous bien GTC ?
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 :
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.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6859
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
Re: Connaissez-vous bien GTC ?
Oué, l'estack c'est plus de ton ressort que du mien. PedroM powa, int main (int argc, const char** argv) rulez
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é.
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é.
-
Folco
Niveau 8: ER (Espèce Rare: nerd)- Messages: 150
- Inscription: 23 Sep 2010, 00:00
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: anapu :p
Re: Connaissez-vous bien GTC ?
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.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6859
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
Re: Connaissez-vous bien GTC ?
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
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
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Connaissez-vous bien GTC ?
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.
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.
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5665
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):→ MyCalcs profile
26 messages
• Page 2 sur 3 • 1, 2, 3
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 35 invités