π
<-
Chat plein-écran
[^]

Script qui refuse de s’exécuter sur la Numworks N0100

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude cent20 » 08 Sep 2019, 08:34

Lionel Debroux a écrit: et critor l'a testé tôt ce matin: il a pu flasher la calculatrice avec succès
(...)
peut-être que ce changement ça permettra de tourner des scripts un peu moins pas complexes sans avoir à rendre le code source moche ?


J'imagine que si cela avait marché il serait venu nous le dire !
Je suis en train de le faire avec cette page : https://tiplanet.org/forum/viewtopic.php?f=97&t=20746

Dump flash from device

Reading up to 0x100000 bytes starting at 0x8000000
Copying data from DFU device to browser 100%
Read 1048576 bytes

J'ai récupéré un firmware.bin de 1024ko

Flash firmware onto device

Erasing DFU device memory 100%
Copying data from browser to DFU device 100%
Wrote 745829 bytes
Manifesting new firmware
Done!
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 46.1%
 
Messages: 1013
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude cent20 » 08 Sep 2019, 08:49

Je viens de tester à nouveau mon script polynome_ne_marche_pas_6ko_seulement.py et je n'ai pas un message d'erreur lié à la mémoire de la calculatrice, mais un message

Last command
RuntimeError :

On progresse donc.

Et le script pour tester la mémoire me rassure test_memory_size.py car le premier bloc de mémoire fait 8385 octets (si j'ai bien compris ce que fait ce script) ce qui répond en partie à ma précédente interrogation.

1258
+8385
+4316
+4283
+3260
+2235
+1850
+1211
+(...)
31069
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 46.1%
 
Messages: 1013
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude Lionel Debroux » 08 Sep 2019, 09:15

parisse a écrit:
Lionel Debroux a écrit:@parisse: le pool est fait pour stocker les TreeNode utilisés un peu partout comme opérande et résultat d'opération d'epsilon.

Ok, quelle consequence si on le divise par 2? Parce que ca permettrait de recuperer un peu de place pour le tas, ca ne serait pas du luxe pour KhiCAS.

La conséquence me semble être une réduction de la taille maximale de l'historique des calculs pour une complexité donnée, ou de la complexité maximale pour une taille donnée.
Changer la valeur de BufferSize dans Poincare::TreePool (poincare/include/poincare/tree_pool.h) baisse rapidement la taille de Poincare::Init()::pool, par exemple 32768 -> 24576 change la taille de 0xD558 à 0xA008 octets.
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: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude cent20 » 08 Sep 2019, 09:18

cent20 a écrit:D'ailleurs en créant des scripts bidons effacés depuis, en dépassant 5 ko environ ils plantaient dès le lancement. Si la taille maximale d'un script est de 4ko cela doit être marqué en clair dans la documentation !


J'ai retrouvé mes scripts bidons ...

test_memory_available.py

Code: Tout sélectionner
a="a"
i=1
while i>=0:
  a=a+"a"
  i=i+1
  print(i)


N0100 stock : plante lorsque i=4080 sur la calculatrice
N0100 emulateur : plante lorsque i=5007
N0100 (.bin avec k_pythonHeapSize = 32768) : plante lorsque i=11199 sur la calculatrice

mem_test_list_rand.py
Code: Tout sélectionner
from random import *
n=int(0)
a=["debut"]
while n < 5000:
  a.append(random())
  n=n+1
  print(a)
  print(n)


N0100 stock : plante lorsque n=713 sur la calculatrice. 713*19=12ko
N0100 emulateur : plante lorsque n=713
N0100 (.bin avec k_pythonHeapSize = 32768) : plante lorsque n=1023 sur la calculatrice. 1023*19=19ko
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 46.1%
 
Messages: 1013
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude critor » 08 Sep 2019, 09:31

cent20 a écrit:
Lionel Debroux a écrit: et critor l'a testé tôt ce matin: il a pu flasher la calculatrice avec succès
(...)
peut-être que ce changement ça permettra de tourner des scripts un peu moins pas complexes sans avoir à rendre le code source moche ?


J'imagine que si cela avait marché il serait venu nous le dire ! [/url]


Je n'ai pas testé le script des polynômes (compressé ou non) avec le firmware de Lionel.

J'ai juste testé mon script d'estimation de la mémoire de travail : https://workshop.numworks.com/python/andreanx/mem
Il m'a bien retourné 32204 au lieu de l'habituelle autour de 16000. :)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.4%
 
Messages: 41498
Images: 14640
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude Lionel Debroux » 08 Sep 2019, 10:36

Puisque l'utilisation d'un tas Python de 32 KB change le comportement... allons un peu plus loin ?
En pièce jointe, un build avec un tas de 40 KB et un nombre maximum de noeuds réduit (3/4 de la valeur d'origine mentionnée plus haut, et sizeof(TreeNode) == 12, donc ça laisse 2048 noeuds). Comme le deuxième changement réduit davantage la RAM consommée que le premier ne l'augmente, le tas pour malloc (section .heap) est plus grand, 0xEB64 octets maintenant.
Je me demande si on ne pourrait pas réduire la taille de la pile (section .stack), aussi... sauf utilisation de grosses variables locales, 32 KB (0x7FF8) est élevé alors que le tas ne fait même pas le double de ça.

sizeof(TreeNode) == 12 parce qu'il y a deux int16_t et un int8_t, et un pointeur vers la vtable, donc du padding. De toute façon, la taille doit être multiple de 4 pour faciliter les copies mémoire, c'est également marqué en commentaire.
Fichiers joints
epsilon.bin
Epsilon avec k_pythonHeapSize=40960, BufferSize=24576, --gc-sections
(728.35 Kio) Téléchargé 100 fois
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: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude critor » 08 Sep 2019, 11:01

Merci.

J'ai à nouveau testé le script d'estimation de la mémoire de travail; il renvoie 40279.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.4%
 
Messages: 41498
Images: 14640
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude critor » 08 Sep 2019, 11:19

cent20 a écrit:Je viens de tester à nouveau mon script polynome_ne_marche_pas_6ko_seulement.py et je n'ai pas un message d'erreur lié à la mémoire de la calculatrice, mais un message

Last command
RuntimeError :


C'est juste le import polynome_ne_marche_pas_6ko_seulement qui échoue.
Une fois le script de 6K renommé de façon plus raisonnable, il marche sur le dernier firmware (40K) de Lionel.
Pas retesté sur les autres firmwares.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.4%
 
Messages: 41498
Images: 14640
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude cent20 » 08 Sep 2019, 11:26

La version pas du tout minifié de ce script ( 8.5 ko ), écrite sans aucune astuce du type I=input tourne parfaitement sur la version 40k mais pas sur la version 32k... : polynome_degre2.py

Avec le temps qu'on y a passé dessus (on ne développe pas tous aussi vite que critor), c'est non sans une certaine émotion que je la teste directement sur la numworks...

Les deux coauteurs vont être ravi !

Merci à tous pour votre aide, maintenant il faut pousser numworks à cesser la limitation arbitraire à 16ko, les échanges que j'ai eu par mail avec le support de numworks m'ont permis de comprendre que le 16ko avait été fixé un peu au petit bonheur la chance.
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 46.1%
 
Messages: 1013
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Script qui refuse de s’exécuter sur la Numworks N0100

Message non lude Lionel Debroux » 08 Sep 2019, 11:30

Merci pour vos tests :)
https://github.com/numworks/epsilon/pull/1064 pour élargir le tas à 32 KB, donc.
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 Programmation Python

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 16 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.
1116 utilisateurs:
>1078 invités
>33 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)