30

erf...

31

Ca a fait ses preuves ^^^

32

-

33

Mais pas de garbage-collection malheureusement sad
Je pense qu'un système sans mécanisme de lock est préférable à un système sans garbage-collection, sinon ça devient vite le bordel dans le tas...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

34

geogeo> Tu utiilises souvent les ROM_CALLs d'allocation ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

35

Perso j'y connais rien en allocation etc... donc je suis un peu perdusad

36

Onur>Pollux^^
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

37

PpHd :
Il peut utiliser genalib.

La nouvelle version arrive quand ? grin
Pollux :
Je pense qu'un système sans mécanisme de lock est préférable à un système sans garbage-collection, sinon ça devient vite le bordel dans le tas...

pencil
So much code to write, so little time.

38

>La nouvelle version arrive quand ?
Je finis de corriger SMA, Genlib, PedroM puis je m'attaque a Genalib.

39

PpHd :
>La nouvelle version arrive quand ?
Je finis de corriger SMA, Genlib, PedroM puis je m'attaque a Genalib.

Oki c'est pas pressé de toute façon, je n'en suis plus à 1 an prés. smile
So much code to write, so little time.

40

Retour au sujet, merci !
(pour rappel, c'est GFA-Basic ; pas genlib, le kernel, genalib ou dans le genre ; pour genlib et autres, il y a le forum T3, acessible dpeuis la page d'index de yN smile )
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

41

Le but était d'avancer une suggestion d'utilisation de genalib pour l'allocation de GFA-Basic, sachant que le gain est tout à fait non négligeable (je gagnais un facteur 40 dans Small Compiler par exemple)... c'est pas hors-sujet, si ?
So much code to write, so little time.

42

plus ou moins grin
#jesors#
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

43

Pas facile la modération^^
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

44

mouai tu voulait juste le post #42, avoue !!!
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.

45

pas de déviation#gninon#
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

46

Je vais répondre à des choses qui me paraissent horriblement fausses.
vince
:
Geogeo a vraiment fait un travail de fou qui va marquer la communaute TI pour les futurs generations. En plus comme cest un outil de developpement, il va y avoir plein de choses cree grace a son soft.

oui et dans un un an ou deux, (cad quand il sera *réellement* passé à autre chose) il se fera casser du sucre sur le dos et se fera taxer de "tueur de la communauté" roll


Qu'importe, je ne serais plus là pour voir ça.

Marrant on dirait que la "mode" des shells est passé

Now c'est la mode des interpreteur/compilateur basic

enfin bon
pourquoi pas



Dommage qu'aucun interpréteur OnCalc n'est sorti ou est en version bêta.

Pollux :
aussi flexible et plus rapide, c pas possible sans réimplanter un tas neutral (ou alors le gain de vitesse sera minime dans pas mal d'exemples)



Faudra me faire un exposer sur l'extrème importance d'un tas pour les opérations mathématiques...
Je veux bien qu'un tas optimise les chaînes de caractères de façon significatif mais généralement un jeu demande plus d'opérations mathématiques que d'opérations avec les chaînes de caractères.
Quoi qu'il en soit il est toujours possible de faire un 'tas' simplifié pour les chaînes de caractères et c'est ce que je compte faire.

Ensuite niveau performance, y a pas photo, mon interpréteur est 25.7 fois plus rapide que le TI-Basic et il est encore possible de multiplier ce facteur de performance par 2. Niveau flexibilité, y a pas photo aussi, car le GFA Basic à fait ses preuves, il est possible d'accèder facilement à n'importe quelle zone mémoire, de modifier des zones du GFA Basic via Arrptr et Varptr, d'utiliser des pointeurs, encore plus suprenant d'appeler des programmes en assembleurs avec arguments, d'utiliser des proécdures... Bref y a matière et toujours possibilité de contourner des fonctions manquantes.

Orion_ :
heu, sauf erreur, le gfa basic n'est pas interpreté sur atari, mais compilé neutral



Une grosse erreur, GFA-Basic est un interpréteur pur et dur programmé en Assembleur. Il existe en effet un compilateur pour le GFA-Basic qui permet de compiler les programmes réalisés, mais c'est un programme à part au GFA-Basic.
Ensuite il faut savoir que la confusion entre un interpréteur et compilateur est très fréquente.
Le GFA-Basic est nommé semi-compilé ce qui signifie que l'interpréteur génére du P-Code (abréviation de Pascal Code), c'est un jeu d'instructions propre à l'interpréteur et inconnu par le processeur, C'est ensuite à une autre phase de l'interpréteur d'executer le P-Code. C'est ce que fait mon interpréteur sauf que dans mon cas mon P-Code n'est pas optimal car malheuresement je ne trouve aucune info sur le net... Quoi qu'il en soit je suis 2 fois plus lent que le GFA-Basic sur Atari ST et j'ai encore la possibilité de faire des optimisations.

Sasume :
geogeo> Tu utiilises souvent les ROM_CALLs d'allocation ?


J'utilises les ROM_CALLS suivantes pour les allocations et unallocations des chaînes de caractères (HeapAlloc et HeapFree), il faut savoir que l'utilisation de ses ROM_CALLS n'existe pas dans les cas simples comme Print "toto" ou encore A=B... Mais malheuresement lorsqu'une opération entre chaîne est effectue je suis obloigé de faire une allocation... Mais il y a quelques optimisations à faire pour les chaînes de caractères.

Quant à utiliser Genalib juste pour les allocations, c'est inutile car l'interpréteur prenderai beaucoup plus de mémoire pour pas grand chose. 60 Ko ça peut paraître énorme mais les fonctions de TIGCCLIB prennent le plus de place ainsi que la table des tokens...
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

47

Tu pourrais peut être encore gagner en vitesseen faisant un pré-tokeniseur sur pc (ou même sur TI d'ailleurs puisque tu as déjà le code) qui sauverait les fichiers tokenisés directement interprétables ?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

48

geogeo
: Dommage qu'aucun interpréteur OnCalc n'est sorti ou est en version bêta.


Il y a 3 ans (en fin 2001 si je ne me trompe pas), j'ai porté Small sur TI, spécialement pour genlib. Le compilateur était gros et lent (allocations AMS), mais la machine virtuelle était resonnablement petite, et suffisamment rapide pour faire de bons jeux temps réel. Technic avait fait un début de X-men (jeu de plateforme) avec.

Depuis ce temps là j'attends la prochaine version de genalib, qui faisait passer le temps de compilation de 40 secondes à 1 seconde, pour le releaser. grin
So much code to write, so little time.

49

Wow, ça c de la patiencegrin
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

50

geogeo
:
Pollux :
aussi flexible et plus rapide, c pas possible sans réimplanter un tas neutral (ou alors le gain de vitesse sera minime dans pas mal d'exemples)


Faudra me faire un exposer sur l'extrème importance d'un tas pour les opérations mathématiques... Je veux bien qu'un tas optimise les chaînes de caractères de façon significatif mais généralement un jeu demande plus d'opérations mathématiques que d'opérations avec les chaînes de caractères.

Il y aussi les tableaux, hein embarrassed Et ça sert dans une grande partie des algos (et ils ne sont pas forcément de taille connue à l'avance)

Tu as aussi les expressions mathématiques, les entiers de taille arbitraire, etc... Mais bon, comme tu ne fais pas un truc compatible niveau source avec le ti-basic, c'est un peu moins grave...
Quoi qu'il en soit il est toujours possible de faire un 'tas' simplifié pour les chaînes de caractères et c'est ce que je compte faire.

Bien smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

51

P-Code veut dire Pseudo-Code, pas Pascal-Code.
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é

52

nitro
:
geogeo
: Dommage qu'aucun interpréteur OnCalc n'est sorti ou est en version bêta.


Il y a 3 ans (en fin 2001 si je ne me trompe pas), j'ai porté Small sur TI, spécialement pour genlib. Le compilateur était gros et lent (allocations AMS), mais la machine virtuelle était resonnablement petite, et suffisamment rapide pour faire de bons jeux temps réel. Technic avait fait un début de X-men (jeu de plateforme) avec.

Depuis ce temps là j'attends la prochaine version de genalib, qui faisait passer le temps de compilation de 40 secondes à 1 seconde, pour le releaser. grin


OK, mais c'est dommage d'attendre pour relesaer.
Pollux
:
geogeo
:
Pollux :
aussi flexible et plus rapide, c pas possible sans réimplanter un tas neutral (ou alors le gain de vitesse sera minime dans pas mal d'exemples)


Faudra me faire un exposer sur l'extrème importance d'un tas pour les opérations mathématiques... Je veux bien qu'un tas optimise les chaînes de caractères de façon significatif mais généralement un jeu demande plus d'opérations mathématiques que d'opérations avec les chaînes de caractères.

Il y aussi les tableaux, hein embarrassed Et ça sert dans une grande partie des algos (et ils ne sont pas forcément de taille connue à l'avance)

Tu as aussi les expressions mathématiques, les entiers de taille arbitraire, etc... Mais bon, comme tu ne fais pas un truc compatible niveau source avec le ti-basic, c'est un peu moins grave...
Quoi qu'il en soit il est toujours possible de faire un 'tas' simplifié pour les chaînes de caractères et c'est ce que je compte faire.

Bien smile


Les tableaux c'est pas un problème puisque leur taille est connue à l'avance, je parle des tableaux numériques. Quant aux tableaux de chaînes de caractères, c'est autre chose, puisque s'est à base de handles.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

53

geogeo
: OK, mais c'est dommage d'attendre pour relesaer.

Bah de toute façon je n'ai plus les sources depuis longtemps... la dernière fois que j'ai voulu y jeter un oeil c'est Thibaut qui m'avait renvoyé l'archive, que j'ai reperdu depuis.
So much code to write, so little time.

54

Ah, ça veut dire que même si la nouvelle version de genalib sort, ton interpréteur ne serat pas releasé ??
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

55

MacIntoc :
Ah, ça veut dire que même si la nouvelle version de genalib sort, ton interpréteur ne serat pas releasé ??

Euh... oui. A moins que je n'ai quelques heures de libres pour le porter à nouveau.
So much code to write, so little time.

56

geogeo
: Les tableaux c'est pas un problème puisque leur taille est connue à l'avance

C'est bien le problème embarrassed

Je ne vois pas pkoi tu autorises des chaînes de caractères de taille variable alors que tu interdis les tableaux de taille variable confus

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

57

Y a un truc que tu dois pas bien comprendre.

Un flottant fait 10 octets, un entier fait toujours 4 octets, un boolean 1 octet. C'est le format de mon interpréteur donc les tableaux sont de taille fixe. Bien sur on peut faire un tableau de 5 dimensiosn par exemple avec 720 items soit 2800 octets pour des entiers, 720 octets booleans et 7200 octets pour les flottants. Un tableau possède un espace mémoire. Mais l'accès au tableau ne demande aucune allocation, récupération d'adresse... c'est comme accéder à une variable.

Il est clair qu'à tout moment je peux définir un tableau de x items genre 6 dimensions comme dans mon exemple précédent avec 720 items. Encore plus suprenant, il est possible avec bidouille des descripteurs et d'accès en mémoire de modifier la taille des tableaux, changer les dimensions...
Dim A(1,2,3,4,5,6)

Ensuite les chaînes de caractères c'est autre chose puisque le descripteur de chaque item a une taille fixe et donne des infos sur la chaîne, une chaîne est repérée par son numéro de HANDLE et suivie de sa taille.

En tout cas dans peu de temps je risque de changer le format de mon descripteur pour les chaînes et les tableaux.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

58

geogeo :
Y a un truc que tu dois pas bien comprendre.
... Un tableau possède un espace mémoire. Mais l'accès au tableau ne demande aucune allocation, récupération d'adresse... c'est comme accéder à une variable.

Et tu m'expliques où est la différence avec une chaîne dans ce que tu racontes ? neutral


(je dis pas qu'il n'y a pas de différence dans ton implémentation, au contraire, mais je dis qu'il n'y a aucune différence entre les besoins d'une chaîne et les besoins d'un tableau : on n'a pas moins besoin de concaténer 2 tableaux que de concaténer deux chaînes -- je comprends pas trop pourquoi tu autorises la concaténation pour les chaînes, et pas pour les tableaux...)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

59

Et tu m'expliques où est la différence avec une chaîne dans ce que tu racontes ?


Lol le comportement d'une chaîne est très différente du comportement d'un nombre, donc le descripteur est différent... neutral
(je dis pas qu'il n'y a pas de différence dans ton implémentation, au contraire, mais je dis qu'il n'y a aucune différence entre les besoins d'une chaîne et les besoins d'un tableau : on n'a pas moins besoin de concaténer 2 tableaux que de concaténer deux chaînes -- je comprends pas trop pourquoi tu autorises la concaténation pour les chaînes, et pas pour les tableaux...)


On dirait un changement de sujet. neutral
Lol bah fallait me le dire plutôt. Donc pour toi la concaténation de nombres est identique à la concanétation de tableaux? neutral Premièrement le GFA-Basic n'a jamais supporté ça, deuxièmement j'y ai jamais pensé et j'en voit pas l'utilité et troisièmement c'est possible à faire genre A()+B(). D'ailleur je crois que le TI-Basic supporte la concaténation de listes.

Pour finir je recommence sur la différence entre chaîne, tableaux et tableau de chaînes.
Quant on a un tableau numérique, le but est d'accéder facilement à une valeur, pour ça c'est simple, on calcule l'adresse ou se trouve la valeur et on modiifie le contenu si necessaire. Pour une chaîne c'est autre chose, il faut parcourir le descripteur pour connaitre sa taille, récupérer une adresse à partir du numéro du handle et après faire les opérations necessaires. Rien qu'avec ça la différence entre chaînes et variables numériques est différente donc la différence est identique entre tableaux numériques et tableaux de chaînes.

Une chose que je ne comprend pas, vous en demandez toujours plus comme concaténer des tableaux... alors qu'il y a bien des choses plus importantes à faire avant. Surtout que cette possibilité est peu utilisée et surtout est implantable facilement lorsque mon format de variables et tableaux sera clairement défini.

Bref tout ça pour une histoire de tas qui pour moi n'a vraiment pas une place indispensable dans ce genre de projet. Genre on contourne le tas avec des chaînes de caractères fixes de 65 caractères et puis basta. (une chose à noter le GFA-Basic sur Atari ST consomme toute la mémoire pour la gestion de chaînes de taille fixe alors que dans mon cas c'est autre chose).
Ce qui me semble le plus important est de trouver des phases d'optimisations pour l'execution du programme, comme diminuer le nombre de tokens, éléminer les répétitions comme A=A+1 dans le cas de AA1+=, stocker pour les entiers les 2 dernières valeurs dans des registres...

Les objectifs de mon langages sont les suivantes:
- Remplacer le TI-Basic mais ne pas devenir pour autant un langage proche du C ou de l'ASM, je veux dire par là que mon objectif n'est pas d'avoir des vitesses d'execution proche de l'ASM ou du C et donc de faire des jeux avancés.
- Etre très rapide.
- Très compact pour tenir dans un secteur de la flash ou 2 maximum.
- Très souple et puissant, proposer toutes les fonctions du GFA-Basic avec la possibilité d'utiliser des pointeurs...
- Possibilité de faire des procédures et d'ajouter des APIs.

Pour finir, il y a toujours une alternative pour obtenir des programmes d'une vitesse très proche du C en réalisant tout simplement un compilateur on-calc ou sur PC pour le GFA-Basic en transformant le fichier qui contient les tokens d'execution en langage machine. (mais c'est pas mon objectif).

C'est ma dernière réponse ici, j'ai des engagements à tenir. La discussion continue ici: http://pws.tigen.org/forum/index.php?action=rubrique&forum=5&cat=105&page=1 ou nul part.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

60

>Depuis ce temps là j'attends la prochaine version de genalib, qui faisait passer le temps de compilation de 40 secondes à 1 seconde, pour le releaser.
Tu te moquerais pas du monde la ? Tu veux que je le release a ta place ?