π
<-

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

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

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

Unread postby Adriweb » 24 Jan 2023, 14:02

parisse wrote: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: Select all
[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 wrote: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 wrote: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.

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby parisse » 24 Jan 2023, 15:26

Adriweb wrote:La, ca donne ca:
Code: Select all
[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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3662
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby Adriweb » 24 Jan 2023, 16:03

parisse wrote: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.

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby 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: Select all
#include $(shell cedev-config --makefile)
include /home/parisse/CEdev/app_tools/makefile

mais j'ai une erreur incompréhensible
Code: Select all
[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
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3662
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby 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.

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby 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: Select all
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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3662
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby parisse » 24 Jan 2023, 18:10

Adriweb wrote: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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3662
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby Adriweb » 24 Jan 2023, 18:42

parisse wrote:
Adriweb wrote: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)

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby 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.
User avatar
commandblockguyPremium
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 46.7%
 
Posts: 7
Joined: 26 Apr 2019, 23:08
Location: Texas
Gender: Male
Calculator(s):
MyCalcs profile
GitHub: commandblockguy

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

Unread postby 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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3662
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

PreviousNext

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
1152 utilisateurs:
>1134 invités
>11 membres
>7 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)