π
<-
Chat plein-écran
[^]

Firmware Delta N0110: calcul formel GIAC même en mode exam !

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby Lionel Debroux » 12 Oct 2019, 11:14

Ils font quoi avec le reste de la RAM ?

La pile bien sûr, mais beaucoup de pré-réservation (allocation statique) de structures de données qui ne seront souvent pas réellement utilisées par les utilisateurs, suivant l'utilisation qu'ils font de la calculatrice.
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.2%
 
Posts: 6389
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby jean-baptiste boric » 12 Oct 2019, 11:42

cent20 wrote:Ma question est surement très bête mais la RAM fait 256 ko, ils ne réservent que 16ko à Python, c'est ridiculement faible. Ils font quoi avec le reste de la RAM ? Je veux bien qu'il faille faire tourner l'OS, gérer les interactions claviers, etc mais aucune raison de réserver 240 ko de RAM pour ça ...


NumWorks part du principe que l'allocation dynamique généraliste est à éviter à tout prix car sur la calculatrice un malloc qui échoue entraîne un reset. Contrairement à la concurrence, il n'y a pas de notion de mémoire utilisateur. En mesurant au doigt mouillé, actuellement la RAM contient la pile (32 KiB), le stockage des scripts Python (16 KiB), un tas spécifique pour les expressions mathématiques (32 KiB), un buffer des données runtime des apps (~57 KiB) incluant le tas de 16 KiB de MicroPython, les données applicatives (~30 KiB), d'autres choses que je n'ai pas identifié (~28 KiB) et le tas prenant le reste (~62 KiB).

Avec le patch pour passer les données runtime des apps en allocation dynamique, on pourrait augmenter significativement la taille du tas MicroPython... mais ça plante si j'augmente au-delà de 28 KiB et je ne sais pas pourquoi... :?
User avatar
jean-baptiste boricPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 46.1%
 
Posts: 282
Joined: 21 Dec 2015, 22:22
Gender: Not specified
GitHub: boricj

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby parisse » 12 Oct 2019, 14:23

Et c'est la qu'on voit que la taille de la flash de la N100 et de la RAM des 2 modeles est vraiment handicapante. Avec 1M de ram+8M de flash des le debut, je pense que l'allocation dynamique n'echouerait presque jamais, il n'aurait peut-etre pas ete necessaire de securiser les apps en pre-allouant la place necessaire et Numworks aurait pu investir le temps de developpement correspondant a securiser les donnees dans la flash en cas de reset. Mais bon, ce qui est fait est fait, tentons d'exploiter au mieux ce qu'on a, il y a quand meme de quoi faire des choses tres interessantes.
@jbboric: ca plante avec le malloc de newlib ou avec le malloc de Numworks?
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.2%
 
Posts: 1793
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby jean-baptiste boric » 12 Oct 2019, 14:54

parisse wrote:@jbboric: ca plante avec le malloc de newlib ou avec le malloc de Numworks?


Le malloc de NumWorks. Un de ces jours il faudra que j'expérimente epsilon avec newlib.
User avatar
jean-baptiste boricPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 46.1%
 
Posts: 282
Joined: 21 Dec 2015, 22:22
Gender: Not specified
GitHub: boricj

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby zardam » 12 Oct 2019, 15:06

Ça finit de la même façon avec les deux il me semble ( -> abort() ), mais le malloc de la newlib me semble beaucoup plus avancé que celui de la liba.
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 22.1%
 
Posts: 202
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby parisse » 13 Oct 2019, 09:05

Bon, j'ai teste l'allocation dynamique des apps, mais je ne vais pas l'utiliser, ca a l'air trop instable, probablement parce que giac fragmente le tas et apres si on ouvre une appli un peu gourmande, reset. J'ai mis un flag de compilation (MALLOC_APPS) qu'on peut activer ou pas dans scripts/config.mak.
J'en reste donc a enlever regressions, avec 72K de tas.
D'ailleurs avec la newlib, y-a-t-il moyen de detecter la quantite de memoire disponible restante sur le tas?

Un peu de temps perdu a cause de la memoire RAM trop faible :-( D'ailleurs en regardant rapidement l'historique des firmwares depuis l'an dernier, j'ai le sentiment que le rythme des ameliorations est plutot lent, se rapprochant de la concurrence, peut-etre bien justement a cause des contraintes memoire.

Cote developpement, je suis en train de bien avancer sur l'editeur de programmes (on peut le tester en tapant + EXE depuis le shell) qui sera plus confortable que celui de Numworks:
* affichage complet des lignes trop longues sur 2 lignes (ou plus), pas la peine de defiler horizontalement
* parenthese/[]/{} match
* choix de 2 tailles de caracteres pour pouvoir mieux visualiser un programme un peu long
* possibilite d'inserer le source d'un autre programme dans le programme courant, de sauvegarder sous un autre nom
* copier/coller
* bientot recherche/remplacement et surtout possibilite de tester la syntaxe directement depuis l'editeur (ca fonctionne plus ou moins mais il y a encore quelques bugs ou manques dans l'interface)
Je ne sais pas trop comment gerer les touches menu, vu que j'ai besoin de deux menus: un pour l'editeur, l'autre pour les commandes Khicas. Pour le moment, Toolbox renvoie sur Khicas, et Ans sur le menu editeur. Peut-etre vaut-il mieux inverser?
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.2%
 
Posts: 1793
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby Lionel Debroux » 13 Oct 2019, 09:13

J'en reste donc a enlever regressions, avec 72K de tas.

Ca ne va pas faire de miracles: dans mes tests, ça gagnait de la place tant qu'on laissait le tas MicroPython à la taille minuscule de 16 KB, mais assez peu en ayant élargi ce tas à 32 KB. Comme moi, tu risques de devoir jouer sur des paramètres additionnels comme le nombre de noeuds.
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.2%
 
Posts: 6389
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby parisse » 13 Oct 2019, 09:50

Je suis pour le moment oblige de laisser le tas micro-python a 16K pour avoir 72K de tas.
A terme, si je vire completement l'UI de Numworks de Khicas (ce qui serait une solution au probleme des licences incompatibles), je pourrai peut-etre augmenter le tas micro-python. Il me reste a porter la console de Casio pour faire ca et aussi voir comment gerer mieux ON/OFF (luminosite, affichage du statut de la batterie), eventuellement aussi l'echange de fichiers par DFU (l'UI portee de Casio ne fonctionne pas du tout sur le modele oriente objet de Numworks, auquel j'avoue d'ailleurs ne pas comprendre grand chose. Il n'y a pas de hierarchie de classes qui s'affichent dans ce que je porte, on prend le controle de tout l'ecran et on ecrit dessus, et on attend la frappe d'une touche pour retracer l'ecran)
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.2%
 
Posts: 1793
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postby parisse » 04 Nov 2019, 22:17

Je mets en ligne une version beta de la documentation de Khicas pour Numworks
https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/khicasnw.html
Il y a une section qui explique comment ajouter sa propre application au menu des applications tierces de KhiCAS (Home 1 ou shift-ANS).
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.2%
 
Posts: 1793
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Previous

Return to News NumWorks

Who is online

Users browsing this forum: No registered users and 6 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.
510 utilisateurs:
>477 invités
>27 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)