π
<-
Chat plein-écran
[^]

À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Assembleur, Axe, C/C++, ICE...

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude Adriweb » 24 Jan 2023, 14:02

parisse a écrit:Si tu a une taille de micropython à 150K, il faudrait arriver à découper en 3 sous-libraires, chacune indépendant des deux autres, pas sur que ce soit possible, ce qui expliquerait que ça soit resté en plan depuis octobre 2021. Pour KhiCAS, c'est sans espoir.

Mon port de Lua il y a quelques années faisait dans les 100 KB, et à l'époque deja, la toolchain gérer le split automatique en loader+appvars, et ca marchait sans problème (même si je ne sais pas comment plus que ca), donc il y a de l'espoir quand même.
La, ca donne ca:
Code: Tout sélectionner
[warning] Input too large; split across 2 appvars...
[success] build/MPY.8xp.0.8xv, 65308 bytes.
[success] build/MPY.8xp.1.8xv, 14731 bytes.
[success] build/MPY.8xp, 307 bytes. (compressed 46.86%)

Mais bon, dès le mp_init() je me prends un null ptr deref, y'a encore du boulot, même si c'est probablement du au fait que le GC a été désactivé à la compil ^^

Je vais essayer de voir ce que j'arrive à faire (genre, executer quelques lignes de python... :P)

parisse a écrit:Sur le parseur TI, même si leur code est principalement en assembleur, il doit quand même y avoir quelque part une fonction assembleur qui prend en entrée une chaine normale et renvoie une chaine tokenisée.

Je ne suis pas sur qu'on parle de la même chose, mais quand on tape une expression sur le homescreen, c'est deja des tokens qui sont utilisés (d'où le besoin de le detokenizer, ou bien les traiter directement, dans un programme tiers).
Pour la liste des tokens, cf ici: https://github.com/TI-Planet/z80_basic_ ... tokens.csv et pour un detokenizer, j'ai fait une lib (notamment utilisé par CEmu ou sur tiplanet dans les archives etc) ici : https://github.com/adriweb/tivars_lib_c ... d.cpp#L101
Si on parle de "tokens" un peu plus haut niveau, genre un arbre/AST, je ne suis pas sur que ce soit accessible, voire si c'est fait comme ca tout court dans l'OS. Donc en effet les programmes CE qui font des maths avec un moteur custom (il y en a quelques uns, PineappleCAS, CASymba...), c'est fait à la main.

parisse a écrit:Et pour micropython, s'ils avaient à leur disposition la toolchain cedev, ils devraient pouvoir s'affranchir des limitations de taille de code à 60K que nous avons, ils peuvent utiliser une adresse fixe en flash pour une taille de code arbitrairement longue (enfin limitée seulement par la taille de la flash). Alors il y a peut-être une autre raison qui explique la complexité de leur solution technique.

En 2018, la toolchain CE n'était pas aussi avancée, et TI ne se basait/base que sur les outils officiels de Zilog, donc mauvais compilateur, buggé, ancien, et qui ne gère que du vieux C89. Côté communauté, certes il y a eu des travaux avec LLVM pendant longtemps, mais officiellement ca n'a été releasé (et donc la dépendance sur les outils de Zilog complètement enlevée) qu'à la fin 2020.
Mais c'est sûr que TI a la possibilité de faire des choses beaucoup plus interessantes que nous niveau agencement de la mémoire s'ils en avaient vraiment besoin, pour des grosses APPs etc.
Apres, en étant réaliste, il est fort probable que le circuitpython sur le chip ARM choisi par TI tourne de manière plus performante que sur l'eZ80, mais bon, on verra bien quand on fera des benchmarks...

Par ailleurs, surtout avec TI, il ne faut vraiment pas oublier le syndrome du Not Invented Here, malheureusement...
C'est sûr que ça serait génial si TI se mettait à utiliser et améliorer la toolchain CE (partie compilateur, surtout), mais à mon avis ca n'arrivera jamais.
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude parisse » 24 Jan 2023, 15:26

Adriweb a écrit:La, ca donne ca:
Code: Tout sélectionner
[warning] Input too large; split across 2 appvars...
[success] build/MPY.8xp.0.8xv, 65308 bytes.
[success] build/MPY.8xp.1.8xv, 14731 bytes.
[success] build/MPY.8xp, 307 bytes. (compressed 46.86%)

Mais bon, dès le mp_init() je me prends un null ptr deref, y'a encore du boulot, même si c'est probablement du au fait que le GC a été désactivé à la compil ^^

J'ai du mal comprendre quelque chose, parce que 65308+14731+307, on est loin des 150K?

Si on parle de "tokens" un peu plus haut niveau, genre un arbre/AST, je ne suis pas sur que ce soit accessible, voire si c'est fait comme ca tout court dans l'OS. Donc en effet les programmes CE qui font des maths avec un moteur custom (il y en a quelques uns, PineappleCAS, CASymba...), c'est fait à la main.

Oui, c'etait ce à quoi je pensais. Il faut bien qu'ils aient un format évaluable sur l'OS sinon comment tracer un graphe de courbe? C'est peut-être codé en polonaise inversée ou non (operateur/fonction nombre_arguments arg1 ...)

Apres, en étant réaliste, il est fort probable que le circuitpython sur le chip ARM choisi par TI tourne de manière plus performante que sur l'eZ80, mais bon, on verra bien quand on fera des benchmarks...

Oui, ca me parait probable, l'ez80 doit être très lent, par exemple dès qu'il y a une multiplication ou une division d'entiers par rapport à un processeur 32 bits, sans parler des opérations sur les flottants...

Par ailleurs, surtout avec TI, il ne faut vraiment pas oublier le syndrome du Not Invented Here, malheureusement...
C'est sûr que ça serait génial si TI se mettait à utiliser et améliorer la toolchain CE (partie compilateur, surtout), mais à mon avis ca n'arrivera jamais.

C'est aussi mon avis. En fait, je doute qu'ils fassent des modifications autres que cosmétiques ou de sécurité sur l'OS maintenant.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude Adriweb » 24 Jan 2023, 16:03

parisse a écrit:J'ai du mal comprendre quelque chose, parce que 65308+14731+307, on est loin des 150K?

J'ai juste activé la compression sur convbin (qui donne apparemment compressed 46.86%, ici), ca utilise la compression zx7 en l'occurrence. Le loader inclut le décompresseur pour s'en occuper au runtime.
Cela dit je ne sais pas si ca fonctionne bien pour quelque chose de splitté en appvars... 🤔 Aucune idée si ceci est quelque chose de prévu/testé :P

Je testerai sans, pour voir, mais a mon avis mon crash est sans rapport.
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude parisse » 24 Jan 2023, 16:55

ca ne peut pas être exécutable en archive si c'est compressé, il faut forcément le décompresser en RAM, non?

Sinon, j'ai essayé de compiler hellow_world avec app_tools, en remplaçant la dernière ligne du makefile en
Code: Tout sélectionner
#include $(shell cedev-config --makefile)
include /home/parisse/CEdev/app_tools/makefile

mais j'ai une erreur incompréhensible
Code: Tout sélectionner
[linking] bin/DEMO.bin
/home/parisse/CEdev/bin/fasmg -v1 '/home/parisse/CEdev/meta/ld.alm' -i 'DEBUG := 0' -i 'HAS_PRINTF := 1' -i 'HAS_LIBC := 1' -i 'HAS_LIBCXX := 1' -i 'PREFER_OS_CRT := 0' -i 'PREFER_OS_LIBC := 1' -i 'include "/home/parisse/CEdev/app_tools/linker_script"' -i 'range .bss $D052C6 : $D13FD8' -i 'provide __stack = $D1A87E' -i 'locate .header at $0' -i map -i 'source "obj/icon.src", "/home/parisse/CEdev/lib/crt/crt0.src", "obj/lto.src"' -i 'library "/home/parisse/CEdev/lib/libload/fatdrvce.lib", "/home/parisse/CEdev/lib/libload/fileioc.lib", "/home/parisse/CEdev/lib/libload/fontlibc.lib", "/home/parisse/CEdev/lib/libload/graphx.lib", "/home/parisse/CEdev/lib/libload/keypadc.lib", "/home/parisse/CEdev/lib/libload/msddrvce.lib", "/home/parisse/CEdev/lib/libload/srldrvce.lib", "/home/parisse/CEdev/lib/libload/usbdrvce.lib"' -i 'provide __app_name = ""' -i 'provide __app_version = ""' -i 'provide __app_desc = ""CE C Toolchain Demo""'  bin/DEMO.bin
flat assembler  version g.jmhx
/home/parisse/CEdev/meta/ld.alm [1570]:
   
macro ? [275]:
   script.line
:script.provide [19] (CALM)
Error: invalid expression.
make: *** [/home/parisse/CEdev/meta/makefile.mk:291 : bin/DEMO.bin] Erreur 2
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude Adriweb » 24 Jan 2023, 17:07

Yep, ça décompresse en RAM, là où il y a de la place, je sais plus où, faudrait regarder.

Pour l'erreur, au pif : je pense qu'il faut que les champs soient remplis ? On voit app_name etc. qui sont des strings vides, ce qui n'est probablement pas ce qui est attendu.
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude parisse » 24 Jan 2023, 18:09

bon en définissant APP_NAME etc. ça va un peu plus loin, après il me dit qu'il ne trouve pas le fichier app_tools/app.src, sans tenir compte de la variable APP_TOOLS_DIR = /home/parisse/CEdev/app_tools, je fais un lien symbolique depuis le répertoire hello_world pour app_tools et aussi pour lib depuis le répertoire au-dessus, et ensuite ça plante sur
Code: Tout sélectionner
assemble :temp [1]:
   include?! '../lib/libc/ishl.src'
Processed: include?! '../lib/libc/ishl.src'
Error: source file '../lib/libc/ishl.src' not found.

effectivement, il n'y a pas de fichier ishl.src qui est dans crt. Il semble qu'il y a un décalage entre app_tools et cedev. Meme chose pour ishrs.src qui est aussi dans crt, et pour ishru.src qui est introuvable.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude parisse » 24 Jan 2023, 18:10

Adriweb a écrit:Yep, ça décompresse en RAM, là où il y a de la place, je sais plus où, faudrait regarder..

Mais dans ce cas tu perds tout le bénéfice du gain en RAM que procure l'exécution en flash. Et pour micropython ça va poser problème s'il te faut 150K de ram pour décompresser.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude Adriweb » 24 Jan 2023, 18:42

parisse a écrit:
Adriweb a écrit:Yep, ça décompresse en RAM, là où il y a de la place, je sais plus où, faudrait regarder..

Mais dans ce cas tu perds tout le bénéfice du gain en RAM que procure l'exécution en flash. Et pour micropython ça va poser problème s'il te faut 150K de ram pour décompresser.

Mais l'execution en Flash, c'est pour les APPS, pas pour les programmes. Et dans ce cas, on ne va pas chercher à faire de la compression, de toute facon.

Pour app_tools, j'ai demandé à CBG (qui me dit d'ailleurs qu'il vient de pousser une mise a jour)
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude commandblockguy » 24 Jan 2023, 19:01

Here's the Lua port I was working on, if you want to use it as an example: https://cdn.discordapp.com/attachments/890834230882496512/1067503942159826994/lua.zip

I've also fixed the error with ishl.src - it looks like the file was moved in a recent toolchain update, but I didn't notice because I installed my version of the toolchain on top of an older one, leaving a copy of the old file intact.
Avatar de l’utilisateur
commandblockguyPremium
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 46.7%
 
Messages: 7
Inscription: 26 Avr 2019, 23:08
Localisation: Texas
Genre: Homme
Calculatrice(s):
MyCalcs profile
GitHub: commandblockguy

Re: À quand KhiCas pour TI-83 Premium CE / Edition Python ?

Message non lude parisse » 24 Jan 2023, 20:13

Thanks, it now compiles. But I get a reboot on the emulator. I also tried to link the hello_word example with your app_tools directory, I also get a reboot.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

PrécédenteSuivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 15 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.
1387 utilisateurs:
>1353 invités
>29 membres
>5 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)