π
<-
Chat plein-écran
[^]

Nouveaux travaux sur un compilateur C pour (e)Z80 via LLVM…

Nouveautés, projets, mises à jour.

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude Adriweb » 15 Juil 2018, 13:20

Oui probablement (brew install ninja?)
Et de toute façon llvm eZ80 n’est pas encore prêt (jacobly n’a plus travaillé dessus depuis quelques temps, il attend entre autre le GlobalISel). C’est pratique pour quelques trucs de base en C n’utilisant pas les flottants. Et cote C++, en gros c’est pour tester le langage en lui même, il. Y a pas de stdlib ou autre (j’ai fait avec succès quelques essais de microstdlib mais bon, ça remplissait déjà un tiers de la taille Max d’un programme, pour seulement 3 types :p)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude parisse » 15 Juil 2018, 14:13

Je peux me debrouiller sans support de la libstdc++, il me faut seulement le support du langage C++. Par contre, en parcourant la doc, je realise que la taille maximale des programmes semble etre de 64K. Y-a-t-il une raison forte qui empeche d'aller plus loin alors que je lis par ailleurs qu'il y a 3M de flash utilisable? Bon, de toutes facons, avec des entiers sur 24 bits et des double sur 32 bits, ca aurait necessite sans doute encore plus de boulot que pour porter Giac sur Casio, il sera sans doute plus raisonnable d'attendre que TI passe a une architecture moins archaique...
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3500
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude Lionel Debroux » 15 Juil 2018, 14:26

Y-a-t-il une raison forte qui empeche d'aller plus loin alors que je lis par ailleurs qu'il y a 3M de flash utilisable?

En faisant des FlashApps, on peut théoriquement aller plus loin que la limite des 64 KB imposée aux programmes ASM, mais... ces FlashApps, il faut les installer de manière spéciale, puisque TI ne fournit pas de moyen officiel de faire des FlashApps TI-eZ80. Ca fait des années qu'on le leur a réclamé, sans succès.

ca aurait necessite sans doute encore plus de boulot que pour porter Giac sur Casio, il sera sans doute plus raisonnable d'attendre que TI passe a une architecture moins archaique...

Je le pense aussi.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude Adriweb » 15 Juil 2018, 14:27

Non mais pour le moment c’est mort et enterré hein, sur CE ^^
Et puis il n’y a que 4 Ko de stack et 69 Ko de heap.
On peut « tricher » niveau taille Max en passant par un loader d’appvar (Convhex le gère automatiquement ou presque, on lui passe le .hex final trop gros, et avec un flag il fabrique tout seul les appvar et le loader), c’est ce que j’avais du faire pour mon portage de minilua, qui faisait en tout 110 Ko ou un truc du genre. Ce fut déjà pas évident.
Sinon, des flash apps oui, mais on reporte le problème. Car il faut bien les « installer » via un programme, pour nous.

Niveau llvm sinon, c’est absolument pas utilisable en l’état, il y a pas mal de cas pas bien gérés et qui font donc « crashed » le compilo (certes a l’époque Oiram a réussi à être compilé en entier, et forcément llvm produit du code bien meilleur que ZDS, mais en fin de compte, du code C ansi utilisant des entiers uniquement, c’est pas complexe.)
Quand je serai rentré chez moi je linkerai mon projet partage de test CPP sur le Project Builder, ça permettra de voir l’avancée des choses et bidouiller avec llvm direcetement en ligne sans avoir à l’installer (dans un premier temps c’est pas mal)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude Adriweb » 09 Nov 2019, 07:14

Il y a quelques semaines, Jacobly a repris pour de bon le boulot sur le backend z80/eZ80 LLVM :)
Et en fait, il a réécrit entièrement la partie de sélection d'instructions pour profiter du nouveau "GlobalISel" de LLVM, bien plus efficace et simple pour faire ses backends que celui utilisé avant (DAGIsel).

Et du coup, en quelques semaines, ce travail porte déjà ses fruits, avec la toolchain communautaire qui builde entièrement, ainsi que ses exemples. D'autres programmes plus complexes, comme Oiram, commencent à fonctionner aussi :)
Des bugs sont corrigés chaque jour, et des améliorations apportées, donc ne vous attendez pas à quelque chose de stable pour le moment... mais ça avance vite !
Toujours est-il que vous pouvez suivre l'évolution de l'intégration de LLVM dans la toolchain par ici : https://github.com/CE-Programming/toolchain/tree/llvm

Instructions de build (attention, ça peut être long, mais c'est normal surtout la première fois que le build est fait) : https://github.com/jacobly0/llvm-project/wiki (vous noterez que ce n'est plus le même repo que la dernière fois - en effet entre temps LLVM est passé à un monorepo git, ce qui facilite par ailleurs bien le process)

On va bientôt pouvoir dire au revoir aux outils de Zilog et enfin avoir une toolchain moderne basés sur des outils libres et puissants !
(Quand ça sera prêt, vous n'aurez pas à builder ça vous même, on vous proposera une version déjà pré-faite en téléchargement)

Pour ma part, je compte refaire la partie de gestion des toolchain ez80 du PB pour pouvoir avoir ce tout dernier backend LLVM ainsi que la derniere version de la toolchain stable actuellement releasée.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude parisse » 09 Nov 2019, 13:50

Du coup, on pourrait peut-etre compiler un jour une version strippee de KhiCAS sur la 83?
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3500
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude Lionel Debroux » 09 Nov 2019, 14:14

Compiler, peut-être, même si pour cela, il faudra certainement étendre la lib standard.
Après, il faudra produire un binaire final, et le rendre installable et lançable sur la machine... ça sera une version plus complexe de ce que Cesium fait pour pouvoir s'installer comme FlashApp alors que TI ne permet pas de faire des FlashApps communautaires. Au moins, maintenant que l'USB est à peu près compris, on pourrait même gérer nous-mêmes le transfert et l'écriture en Flash, avec plus ou moins de coopération de l'OS.
Mais dans tous les cas, il faudra faire avec des limitations de taille de RAM disponible similaires à celles des machines NumWorks: le tas contigu utilisé par la toolchain communautaire et ses libs fait moins de 70 KB, de mémoire...
Une chose me semble sûre, TI n'apprécierait pas du tout qu'on puisse installer un CAS sur une TI-eZ80, même si sait techniquement contrôler la disponibilité en mode examen :D
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude parisse » 09 Nov 2019, 17:27

D'apres mes mesures, le tas reellement utilisable pour KhiCAS sur la Numworks fait un peu moins de 50K (c'est vrai que si ca depasse un peu, on mord sur la fin de la stack qui est contigu ce qui rajoute un peu de place). 70K ce n'est pas ideal, mais ca permettrait quand meme de faire des choses, a condition que la vitesse du processeur ne soit pas trop lente.
Apres, c'est sur que je n'irai pas me battre tout seul contre les protections de l'OS de la TI, mais s'il y a un espoir raisonnable et du support de la communaute, ca peut valoir le coup. Il faut bien lutter contre les constructeurs de calculatrice qui continuent a nous vendre des produits volontairement brides, ainsi que contre les obscurantistes.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3500
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude Adriweb » 09 Nov 2019, 17:29

Ne pas oublier que parmi les 69k de heap contiguës, le segment de BSS y est compris :/
Aussi.... le stack fait 4K. C'est peu
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Nouveaux travaux sur un compilateur C pour (e)Z80 via LL

Message non lude Lionel Debroux » 09 Nov 2019, 17:48

L'eZ80 de la 83PCE EP est moins bridé par la lenteur de la Flash et la RAM que celui des 83PCE / 84+CE / 84+CE-T précédentes, mais l'eZ80 reste une ISA 8 bits avec des registres de 16/24 bits et des instructions très limitées. La puissance brute sera donc très en-dessous de celle d'ARM 32 bits à quelques dizaines de MHz, 100 MHz comme le processeur des N0100, etc.
Et j'oubliais la très faible taille de la stack, en effet. Sur TI-68k, on peut compter sur une dizaine de KB en pratique (2 buffers écran de 3840 octets passent sans problème mais 3 buffers sont proches de la limite)... c'est déjà plus confortable !
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

PrécédenteSuivante

Retourner vers Actualités

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 19 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1015 utilisateurs:
>995 invités
>16 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)