π
<-
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

Unread postby Adriweb » 15 Jul 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)
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 52%
 
Posts: 12679
Images: 1081
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

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

Unread postby parisse » 15 Jul 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...
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 84%
 
Posts: 1840
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby Lionel Debroux » 15 Jul 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.4%
 
Posts: 6407
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby Adriweb » 15 Jul 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)
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 52%
 
Posts: 12679
Images: 1081
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

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

Unread postby 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.
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 52%
 
Posts: 12679
Images: 1081
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

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

Unread postby parisse » 09 Nov 2019, 13:50

Du coup, on pourrait peut-etre compiler un jour une version strippee de KhiCAS sur la 83?
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 84%
 
Posts: 1840
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.4%
 
Posts: 6407
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby 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.
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 84%
 
Posts: 1840
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby 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
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 52%
 
Posts: 12679
Images: 1081
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

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

Unread postby 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.4%
 
Posts: 6407
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

PreviousNext

Return to Actualités

Who is online

Users browsing this forum: No registered users and 0 guests

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
676 utilisateurs:
>648 invités
>22 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
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)