π
<-
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, 11:51

Lionel Debroux a écrit: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


Jusque là j'ai tout compris !

Lionel Debroux a écrit: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.


:#fou#:

J'ai tout compris, bien évidemment. ;)

Quelques questions en rapport avec le .bin :

Tu le génère depuis une machine sous quel OS ?
Tu fais comment pour attraper le .bin ?
Le mien sous debian 10 avec interface graphique (on ne rigole pas) s'efface immédiatement après l'echec du flashage, car il serait trop gros pour être envoyé (forcement 8mo>1mo), bon après aussi je ne savais pas qu'il avait été généré par défaut pour la N0110, ce n'est pas marqué dans la doc ni qu'il faut rajouter des paramètres pour compiler :#roll#: )
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 jean-baptiste boric » 08 Sep 2019, 12:12

Lionel Debroux a écrit: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.


Je n'ai pas étudié la question en détail, mais le DFU de NumWorks s'exécute dans le bas de la pile afin de pouvoir mettre à jour le firmware sans scier sa propre branche au passage. Un autre cas qui me vient en tête est la décompression des images avec un buffer d'environ 8 KiB sur la pile (image_view.cpp).
Avatar de l’utilisateur
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 4.5%
 
Messages: 374
Inscription: 21 Déc 2015, 22:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
GitHub: boricj

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

Message non lude parisse » 08 Sep 2019, 12:16

Prudence quand meme avec la stack, il peut y avoir des alloca.
Reste quand meme qu'etre oblige d'optimiser la taille d'un script est peut-etre pas ideal d'un point de vue pedagogique...
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 79.8%
 
Messages: 3546
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

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

Message non lude Lionel Debroux » 08 Sep 2019, 12:29

Tu le génère depuis une machine sous quel OS ?

Debian sid/unstable amd64, dont le gros deviendra Debian 11 dans plus de 2 ans. Debian 10 va très bien pour faire ce que tu veux. Moi aussi, j'ai une interface graphique :)

Tu fais comment pour attraper le .bin ?

Depuis la racine du clone d'epsilon:
Code: Tout sélectionner
make MODEL=n0100
make build/device/n0100/epsilon.bin

et je récupère ce dernier fichier pour l'uploader ici.

Quant à l'usage de la pile: tout à l'heure, j'ai justement ajouté -Wstack-usage=512 -Wframe-larger-than=512 dans CXXFLAGS de scripts/default.mak, et j'ai eu zéro warnings. Mais ça m'étonne, moi aussi... le buffer de 8000 octets dans image_view.cpp aurait dû être reporté, en effet.
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, 13:53

Voilà, l'exploit est annoncé en page d'accueil, vu qu'il change la donne en cette période de rentrée/acquisitions :
viewtopic.php?p=245130#p245130

J'ai normalement crédité tous les acteurs, dites-moi si il y a des modifications à apporter.

Merci.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 44.1%
 
Messages: 41575
Images: 15107
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, 14:59

Lionel Debroux a écrit:
Depuis la racine du clone d'epsilon:
Code: Tout sélectionner
make MODEL=n0100
make build/device/n0100/epsilon.bin

et je récupère ce dernier fichier pour l'uploader ici.



Merci beaucoup. Avec ça je peux compiler directement dans ma machine virtuelle et distribuer les .bin aux élèves. ça suffira pour commencer. Surtout que mes élèves en 1ère NSI auront cette année une TI 83 prenium sans python ni le module externe :whistle: , alors eux les .bin ils s'en moqueront totalement et le python on le fera sur PC mais ça sera moins ludique ...
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 » 26 Fév 2020, 22:46

Je profite du lancement d'un démineur, , un petit script de 3.09ko qui refuse de tourner sur les 16ko pour relancer ce topic.

Depuis le 8 septembre dernier, 5 mois ce sont écoulés nous avons bien progressé à python.
(nous étions parti de 0 en juillet 2019 !)

Et du coup le script de 6ko que l'on pensait incompressible fait désormais 4,00ko, il est ici : https://workshop.numworks.com/python/cent20/polynome et il refuse de tourner sur la version de Epsilon et son tas python de 16ko.

On a réussit à le réduire de 30% depuis les 6ko sans enlever de fonctionnalités essentielles. Mais rien à faire, sur Epsilon ça ne veut pas tourner.

Il tourne très bien sur Omega par contre, et le Pull Request de Lionel Debroux sur GitHub est le PR le plus populaire...

Et je n'ai pas encore crée un DM demandant à mes élèves de poster un commentaire sous ce PR, ni de cliquer sur les coeurs, ça c'est prévu pour septembre 2020.
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

Précédente

Retourner vers Programmation Python

Qui est en ligne

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

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
"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.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
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.
1080 utilisateurs:
>1068 invités
>7 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)