Page 1 sur 1

GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 21:02
de Axenntio
Bonjour à tous,

Voilà, j’ai récemment fait l’acquisition d’une superbe TI Voyage200.
Bon après m’être rendu compte que TI connect ne reconnaît pas le câble silver link sous MacOS (si quelqu’un a une solution d’ailleurs...)
Je passe sous Windows et installe tout ce qui faut pour utiliser GTC (j’ai passer 1h avant de comprendre pourquoi la FlashApp ne pouvait pas être envoyée... C’est beau de découvrir d’autres modèles de calculatrices ! ❤️)

Bref je m’amuse, et j’ai lu que GTC est basé sur TIGCC (ou GCC4TI, qui est son successeur si je ne dis pas de bêtises)
J’ai voulu faire un petit moteur raycasting très basique, cependant 2 petits problèmes me sont apparut, impossible d’utiliser la fonction « cos » et/ou « sin ».
Pas de problème, je me dis que je vais faire ma propre fonction pour calculer un cosinus, et là, je me rend compte que le type « float » n’existe pas...
Sachant que les fonctions « cos » et « sin », et le type « float » sont mentionnés dans la documentation, le portage de TIGCC est-il partiel ?
Si oui, je dois donc créer mon type float moi même ? (D’ailleurs, l’auto-complète me propose « FLOAT_TAG » de quoi il en retourne ?)

Ha, et une autre question, j’ai une proposition de fin de motclé/constante/fonction quand je commence à écrire, c’est cool, mais chaque valeur est en double dans la liste, est-ce normal ?

Merci à tous ! ?

Re: GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 21:12
de Ti64CLi++
Ce portage n'a jamais été finis et c'est bien dommage en effet :mj:

Re: GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 21:26
de Lionel Debroux
Je passe sous Windows et installe tout ce qui faut pour utiliser GTC (j’ai passer 1h avant de comprendre pourquoi la FlashApp ne pouvait pas être envoyée... C’est beau de découvrir d’autres modèles de calculatrices ! ❤️)

Ah oui. Soit il faut utiliser Flashappy ou équivalent (OS patché avec tiosmod+amspatch), soit il faut la resigner à la main avec Rabbitsign.

Bref je m’amuse, et j’ai lu que GTC est basé sur TIGCC (ou GCC4TI, qui est son successeur si je ne dis pas de bêtises)

Fork, et successeur de fait, puisque TIGCC n'est plus maintenu.

J’ai voulu faire un petit moteur raycasting très basique, cependant 2 petits problèmes me sont apparut, impossible d’utiliser la fonction « cos » et/ou « sin ».

Hmm. Si sur cette plate-forme-là, tu commences à utiliser des nombres flottants pour faire un raycaster, même basique, tu ne te places pas dans les meilleures conditions pour produire davantage qu'un programme te permettant de voir comment la technique du raycasting fonctionne ;)

Pas de problème, je me dis que je vais faire ma propre fonction pour calculer un cosinus, et là, je me rend compte que le type « float » n’existe pas...

J'ignorais, ou bien je ne me souvenais pas, que Pollux n'avait pas implémenté la gestion des flottants décimaux spéciaux utilisés par AMS (SMAP II BCD). Mais float n'est pas la bonne solution ici, à mon sens :)

Sachant que les fonctions « cos » et « sin », et le type « float » sont mentionnés dans la documentation, le portage de TIGCC est-il partiel ?

GTC est un compilateur C honnête, mais les headers, le code de startup et la librairie de fonctions de GTC sont plutôt de la génération de TIGCC 0.94, avant le nouveau linker spécial, spécifique à l'environnement, utilisé par TIGCC 0.95 et ultérieurs, et donc GCC4TI.
GTC n'a pas rencontré le succès qu'il aurait mérité, en partie parce que de gros bâtons dans les roues lui ont été mis par le très toxique mainteneur de TIGCC, hélas... Pollux aurait probablement pu aller plus loin dans son travail remarquable sans ça.

Si oui, je dois donc créer mon type float moi même ? (D’ailleurs, l’auto-complète me propose « FLOAT_TAG » de quoi il en retourne ?)

Si float n'est pas géré et que tu veux vraiment faire du flottant avec GTC, manifestement, oui, il te faudra coder d'une façon ou d'une autre tes propres types flottants. Les flottants binaires simple précision ont été faits sur TI-68k, notamment par ClosedGL, mais c'est resté rarissime. En général, les gens utilisent de l'arithmétique en point fixe, c'est ce que je te suggère de faire également :)
FLOAT_TAG vient d'estack.h, autrement dit la manipulation de valeurs, variables et fonctions symboliques dans la pile d'expressions. Ce n'est pas ce que tu veux au milieu d'un programme qui voudrait faire des choses plus simples... et plus rapides :)

Ha, et une autre question, j’ai une proposition de fin de motclé/constante/fonction quand je commence à écrire, c’est cool, mais chaque valeur est en double dans la liste, est-ce normal ?

J'en doute un peu, ça peut être un bug.

Re: GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 21:34
de Ti64CLi++
J'ai pourtant moi même toujours eu un doublon dans l'autocomplétion :(

Re: GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 21:53
de Axenntio
J'ignorais, ou bien je ne me souvenais pas, que Pollux n'avait pas implémenté la gestion des flottants décimaux spéciaux utilisés par AMS (SMAP II BCD). Mais float n'est pas la bonne solution ici, à mon sens :)

Que mon conseilles-tu à la place des flottants ?

En général, les gens utilisent de l'arithmétique en point fixe, c'est ce que je te suggère de faire également :)

Hum... Je suppose que ça répond à ma question plus haut ! :D
S'agit-il de cette méthode ?
https://fr.wikipedia.org/wiki/Point_fixe

GTC n'a pas rencontré le succès qu'il aurait mérité, en partie parce que de gros bâtons dans les roues lui ont été mis par le très toxique mainteneur de TIGCC, hélas... Pollux aurait probablement pu aller plus loin dans son travail remarquable sans ça.

En effet, il me semble avoir lu cette information assez souvent... C'est dommage que des choses comme ça arrivent...

Re: GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 22:10
de Lionel Debroux
En fait, en français, je viens d'apprendre qu'on dit virgule fixe: https://fr.wikipedia.org/wiki/Virgule_fixe .
Ca m'apprendra à vouloir franciser ce que j'aurais écrit comme "fixed-point arithmetics", voire "fixed-point math", par opposition à "fixed/floating-point math/arithmetics" :D

Re: GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 22:12
de Axenntio
Haha, d'accord, merci de l'info, je vais jeter un coup d'oeil et voir si ça me perd où pas ! :)

Re: GTC - fonctions / types inexistants

Message non luPosté: 26 Jan 2018, 22:20
de Lionel Debroux
Et pour la dernière partie de ton précédent post: c'est en effet dommage qu'un certain nombre de mauvais comportements aient pu se produire dans la communauté TI ou ailleurs, et faire beaucoup de dégâts. Je ne prétends d'ailleurs vraiment pas en avoir été exempt depuis plus de 16 ans et demi, bien que les personnes avec lesquelles j'ai eu le plus de problèmes aient également eu de gros problèmes avec d'autres personnes, donc le problème ne venait pas que de moi.
Rencontrer ces mauvais comportements dans des communautés en ligne m'aura au moins permis d'apprendre qu'ils existaient, et d'essayer de faire avec ou contre. J'aurais aussi pu, comme d'autres à qui je ne jette absolument pas la pierre, me casser de cette communauté pourrie, vers des communautés fréquentées par des gens plus corrects. Certains de ceux qui ont été découragés étaient de bons programmeurs.
Ce genre d'expériences pourrait s'avérer utile si je les rencontrais également un jour dans le monde réel, en particulier en entreprise - ce qui ne s'est heureusement pas encore produit pour moi, et qui n'est pas souhaitable (pour moi ou pour quelqu'un d'autre), parce que ça voudrait dire qu'il y a des dysfonctionnements...

Re: GTC - fonctions / types inexistants

Message non luPosté: 27 Jan 2018, 00:26
de Axenntio
Je viens de trouver un truc qui s’appelle « ti_float »
Mais quand j’essaye de compiler

Code: Tout sélectionner
ti_float test;


J’ai le droit à
« Error: ‘,’ expected »

C’est vraiment dommage, du C On-Calc il n’y a qu’avec une TI-92+ et TI-Voyage200 que c’est réalisable :/

Bon du coup je regarde toujours du côté du fixed-point je comprend le principe, après il fait que je vois comment je vais pouvoir remplacer un float avec cette technique ! :)

Re: GTC - fonctions / types inexistants

Message non luPosté: 27 Jan 2018, 08:38
de Lionel Debroux
bcd / ti_float était la façon de faire pour pouvoir interopérer avec les nombres flottants spéciaux d'AMS, avant que le GCC de TIGCC soit significativement modifié pour les gérer comme type "float". C'est beaucoup plus pénible à utiliser ( https://debrouxl.github.io/gcc4ti/timath.html#bcd , bcdadd et les autres fonctions), il y a moins de fonctions disponibles avec bcd qu'avec float, et c'est à peu près aussi lent que float :)