parisse a écrit:D'apres la table des symboles, le probleme de KhiCAS sur graph 35eii apparait lors de l'execution d'une fonction de manipulation de chaines de la USTL
- Code: Tout sélectionner
004cad2c g F .text._ZN4ustl6string6assignEPKcj 00000034 __ZN4ustl6string6assignEPKcj
004cad2c l d .text._ZN4ustl6string6assignEPKcj 00000000 .text._ZN4ustl6string6assignEPKcj
004cad60 g F .text._ZN4ustl6string6assignEPKc 00000038 __ZN4ustl6string6assignEPKc
004cad60 l d .text._ZN4ustl6string6assignEPKc 00000000 .text._ZN4ustl6string6assignEPKc
Reste a savoir laquelle precisement, pour pouvoir localiser dans le script. Je n'ai aucun moyen efficace de debugguer...
parisse a écrit:Apres avoir fait quelques tests, je pense que c'est un probleme de manque de memoire sur la 35eii au moment de l'interpretation ou de l'evaluation (ce qui paraissait l'hypothese la plus plausible sachant que ca passe sur la 90). Le script est d'abord stocke comme vecteur de chaine (USTL string), ensuite il est traduit en langage Xcas, ce qui genere une chaine plus grande que la taille du script (et plusieurs chaines intermediaires sont conservees a cette etape), ensuite il est interprete, avec creation des objets giac, puis il y a evaluation. En enlevant des parties du script, aux environs de 1K, j'obtiens un script editable et dont on peut tester la syntaxe une fois, ensuite parfois ca marche (plusieurs test fonctionnent), parfois il y a une fausse erreur, parfois un reboot. Ca semble etre la limite. Pour aller plus loin, il faudrait utiliser un tas different de celui de l'OS de Casio. Sinon il faut essayer de diviser le script en plusieurs scripts.
Merci pour le travail fourni de façon aussi réactive.
parisse a écrit:On en revient toujours au meme probleme, il n'y a pas assez de memoire sur ces calculatrices pour faire des programmes un peu plus consequents que juste quelques lignes! Que de temps perdu pour gagner une fraction d'euro sur le hardware...
Il n'y a que la NumWorks qui est limite avec ses 16K de mémoire de travail, et nécessite en ce moment que l'on fasse attention au moindre octet pour toute mise à jour du script.
Les autres configs ne posent strictement aucun problème, malgré un script qui est quand même conséquent
(près de 4K de source), notamment :
- l'appli CasioPython sur Graph 35+E II qui prend la machine pour un vieux modèle SH3 et ne s'alloue que 32K de mémoire de travail, problème signalé depuis des mois, correction a priori mineure, simple détection de modèle quitte au pire à fournir deux versions, mais hélas aucune mise à jour depuis des mois malgré le caractère hautement stratégique de cette appli de haute qualité
- TI-83 Premium CE Edition Python ou TI-83 Premium CE avec module externe TI-Python, et leur ~20K de mémoire de travail
Que les constructeurs ne soient pas généreux en mémoire allouée est une chose, mais sauf sur NumWorks la capacité est suffisamment confortable pour permettre de grandes choses en Python sans prise de tête.
J'ignorais que KhiCAS était encore plus gourmand en mémoire qu'un interpréteur Python standard
(ce qui n'est déjà pas rien).
Pour référence, l'appli s'alloue combien sur Graph 90+E et Graph 35+E II ?