π
<-
Chat plein-écran
[^]

Améliore ta NumWorks N0110 avec KhiCAS même en mode examen !

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude M4x1m3 » 24 Juil 2020, 10:18

Monsieur parisse,

J'aime beaucoup KhiCAS, j'aime beaucoup ce que vous faites, mais je trouve plusieurs choses qui ne vont pas dans le code de KhiCAS et dans votre manière de faire :
  • Pourquoi n'utilisez-vous pas de système de versionning (git, svn, cvs, ...) pour gérer votre code ? La distribution en archive marche, mais ne permet aucunement de garder des traces de l'historique des modifications et empêche l'envoi simple de patches. Je pense que l'utilisation de git permettrait d'amener pas mal de contributeurs à KhiCAS (dont moi).
  • Dans l'état actuel de choses, le code source ne compile pas sur N0110, je suis obligé, à chaque mise à jour, de patcher votre code pour pouvoir le link, notamment à cause de fonctions qui sont définis sous certaines conditions de préprocesseur mais qui sont utilisé tout le temps (cf. patch joint).
  • L'indentation et la qualité du code sont plus que bancales. Certains fichiers font plus de 10 000 lignes (kdisplay.cc par exemple). Il est impossible pour quelqu'un de sensé de mettre les mains dans le code sans chopper une migraine.
  • Le système de compilation de GIAC relève de la magie noire. En cherchant pendant deux heures je n'ai pas réussi à comprendre comment il fonctionne.

Avec toutes ces observations, j'arrive à en penser que c'est irrattrapable. Il faudrait un rewrite complet pour avoir quelque chose de propre. Vous pouvez au moins essayer de séparer les sources en plusieurs fichiers et d'indenter correctement votre code.

Cordialement.

Patch nécessaire à la compilation de giac-1.6.0 (23/07/2020 - sha256: a8455930c26b36f367eac279233ee3839881e844beb53513f283cf37d6bb4806)
Code: Tout sélectionner
diff -ur giac-1.6.0/src/help.cc giac-1.6.0-new/src/help.cc
--- giac-1.6.0/src/help.cc   2020-07-17 20:20:55.000000000 +0200
+++ giac-1.6.0-new/src/help.cc   2020-07-23 22:27:00.578690605 +0200
@@ -296,18 +296,22 @@
     }
     const char * items[1+static_help_size];
     kk=0;
+#ifdef MICROPY_LIB
     if (xcas_python_eval && !python_heap){
       python_init(python_stack_size,python_heap_size);
     }
+#endif
     for (;pos<static_help_size;++kk,++pos){
       const static_help_t & sh=static_help[pos];
       const char * ptr=sh.cmd_name;
+#ifdef MICROPY_LIB
       if (xcas_python_eval){
   if (!is_python_builtin(ptr) && mp_token(ptr)==0){
     --kk;
     continue;
   }
       }
+#endif
       if (strcmp(ptr,s.c_str())==0){
   howto=sh.cmd_howto[lang-1];
   if (!howto)
diff -ur giac-1.6.0/src/kdisplay.cc giac-1.6.0-new/src/kdisplay.cc
--- giac-1.6.0/src/kdisplay.cc   2020-07-23 09:47:21.000000000 +0200
+++ giac-1.6.0-new/src/kdisplay.cc   2020-07-23 22:27:25.324670451 +0200
@@ -9389,7 +9389,9 @@
#endif
         ){
       python_heap_size=d*1024;
+#ifdef MICROPY_LIB
       python_free();
+#endif
     }
     continue;
   }
@@ -9410,7 +9412,9 @@
#endif
         ){
       python_stack_size=d*1024;
+#ifdef MICROPY_LIB
       python_free();
+#endif
     }
     continue;
   }
@@ -9463,8 +9467,10 @@
       python_compat(p,contextptr);
       if (edptr)
   edptr->python=p;
+#ifdef MICROPY_LIB
       if (do_confirm((lang==1)?"Effacer le tas MicroPython?":"Clear MicroPython heap?"))
   python_free();
+#endif
       *logptr(contextptr) << "Xcas interpreter\n";
       Console_FMenu_Init(contextptr);
       return 0;
@@ -12027,11 +12033,13 @@
   
   int console_main(GIAC_CONTEXT){
#ifdef NUMWORKS
+#ifdef MICROPY_LIB
     mp_stack_ctrl_init();
     //volatile int stackTop;
     //mp_stack_set_top((void *)(&stackTop));
     //mp_stack_set_limit(24*1024);
#endif
+#endif
     python_heap=0;
     sheetptr=0;
     shutdown=do_shutdown;

"Regression testing"? What's that? If it compiles, it is good, if it boots up it is perfect.
Avatar de l’utilisateur
M4x1m3Programmeur
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 39.4%
 
Messages: 135
Images: 8
Inscription: 13 Oct 2019, 21:10
Localisation: Bas-Rhin (67)
Genre: Homme
Calculatrice(s):
Classe: DUT Informatique
GitHub: M4xi1m3

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude parisse » 25 Juil 2020, 05:00

Voila j'ai rajoute les ifdef, il faut dire que je compile systematiquement avec -DMICROPY_LIB donc je ne voyais pas d'erreur. Et vous devriez compiler aussi avec cette option, sinon vous n'aurez pas l'interpreteur MicroPython. Cela necessite d'installer aussi micropython. Le plus simple est de partir de l'archive https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/delta14_device.tar.bz2, j'utilise le script mkarm pour compiler depuis le repertoire ext/giac-1.6.0/src (a adapter en fonction des repertoires sur une autre machine). Je n'ai pas encore eu le temps de rediger tout ca et le mettre dans la doc de KhiCAS pour Numworks (il faut aussi que j'explique comment installer le simulateur FLTK avec une version plus ancienne d'Epsilon pour pouvoir debugger efficacement sur le simulateur).

Sur le reste, je pense que c'est surtout une question d'habitudes, ce qui vous irrite m'est familier et la reciproque est vraie. J'utilise emacs et la ligne de commande Unix comme IDE de programmation, je suis tres efficace avec emacs (en particulier pour debugguer avec le mode gdb d'emacs) et je ne vois donc pas l'interet de changer d'IDE (et apres 30 ans avec emacs ce serait extremement difficile de changer d'habitudes). Dans emacs, c'est beaucoup plus facile de travailler a l'interieur d'un seul gros fichier avec des raccourcis clavier pour chercher plutot que de devoir ouvrir des dizaines de fichiers surtout quand en plus ils sont dans des repertoires differents (le source d'Epsilon est un vrai cauchemar a manipuler dans emacs). La seule limitation est que si le fichier devient trop gros (au-dela de 15 000 lignes environ) emacs devient un peu lent. L'indentation que j'utilise n'a rien de particulier, c'est celle d'emacs par defaut (avec 2 espaces), et j'utilise tres frequemment le raccourci tab pour verifier l'indentation (ou esc-x indent-region).

En ce qui concerne les versions, vous pouvez suivre l'historique des modifications du source de giac sur le svn de geogebra (dont giac est le moteur de calcul formel), qui est mis a jour regulierement ici https://dev.geogebra.org/trac/browser/trunk/geogebra/giac/src/giac. Je trouve git beaucoup moins naturel que svn avec 2 manips a faire au lieu d'une pour envoyer des modifs, et comme avec HP je travaille avec svn, je ne vais pas changer de systeme au risque de faire des erreurs. Mais j'accepte bien sur les contributions independamment des habitudes des contributeurs, d'ailleurs le principal contributeur a giac utilise git, il travaille sur ses propres fichiers sources et je fais un git pull de son repository quand il me fait signe.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 18.7%
 
Messages: 2364
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude overlife » 31 Juil 2020, 10:42

Bonjour,
Je ne parviens pas à obtenir les valeurs numériques des constantes physiques telles que "c" ou "NA" en tapant _c_ ou _NA_
J'ai également essayé avec evalf(_c_) ou evalf(_NA_)
Pouvez-vous m'aider ?
Merci,
Avatar de l’utilisateur
overlife
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 66.7%
 
Messages: 6
Inscription: 31 Juil 2020, 10:23
Genre: Non spécifié

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude parisse » 31 Juil 2020, 11:43

Vous pouvez utiliser la commande mksa ou une commande de conversion d'unites si vous connaissez une unite cible compatible. Par exemple
mksa(_c_)
_c_ => _(km/h)
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 18.7%
 
Messages: 2364
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude overlife » 31 Juil 2020, 12:42

Je vous remercie beaucoup pour votre réponse rapide.
Avatar de l’utilisateur
overlife
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 66.7%
 
Messages: 6
Inscription: 31 Juil 2020, 10:23
Genre: Non spécifié

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude overlife » 01 Aoû 2020, 21:21

Bonjour,
J'ai effectué plusieurs test avec la commande format(), par exemple format(300000000,"e3"), et ça ne semble pas fonctionner sur une Numworks avec Khicas. J'obtiens une recopie de la valeur en entrée.
J'ai essayé avec Xcas/Windows et j'obtiens "3.000e+08".
La commande format est-elle implémentée dans Khicas ?
Merci,
Avatar de l’utilisateur
overlife
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 66.7%
 
Messages: 6
Inscription: 31 Juil 2020, 10:23
Genre: Non spécifié

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude parisse » 02 Aoû 2020, 09:09

J'ai un probleme avec la librairie C (newlib) sur la Numworks, sprintf ne fonctionne pas, j'ai donc bricole une fonction d'affichage minimaliste de flottanta qui ne prend pas en compte d'options.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 18.7%
 
Messages: 2364
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude overlife » 02 Aoû 2020, 11:20

Merci pour votre réponse, je vous souhaite un très bon dimanche !
Avatar de l’utilisateur
overlife
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 66.7%
 
Messages: 6
Inscription: 31 Juil 2020, 10:23
Genre: Non spécifié

En ligne

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude critor » 06 Aoû 2020, 17:00

Bonjour @parisse . Je rencontre quelques difficultés avec la version de test de KhiCAS :
https://parisseb.github.io/nw-external-apps


Déjà, il est bien dommage que cela ne marche pas avec Omega
(erreur "API mismatch")
.
Je ne dispose que d'une seule N0110, et c'est assez pénible de devoir donc sans arrêt passer d'un firmware à l'autre, jusqu'à plusieurs fois par test QCC...


Sinon, je rencontre une difficulté en mode MicroPython, avec les scripts utilisant le nouveau module graphic.
Comme sur TI-Nspire, l'affichage graphique une fois terminé est figé. Mais ici ça indique de taper
EXIT
pour poursuivre le script, alors qu'il n'y a aucune touche de ce nom au clavier.
J'ai tenté toutes les touches une par une, aucune ne marche.
La seule qui provoque une réaction c'est la touche d'annulation
, mais elle ne permet pas de poursuivre, elle interrompt le script.

Notamment dans mon cas, je peux donc obtenir la sortie graphique de mon script, mais pas le résultat qui va avec.
12735

Merci.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 15.3%
 
Messages: 37571
Images: 10520
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Améliore ta NumWorks N0110 avec KhiCAS même en mode exam

Message non lude parisse » 06 Aoû 2020, 20:03

Concernant Omega+KhiCAS, le probleme est de leur cote, pas du mien, je ne comprends pas comment ca pourrait fonctionner alors que leur application external n'a pas assez de callbacks, comme indique ici: https://tiplanet.org/forum/viewtopic.php?f=102&t=24090&start=10#p254646. J'espere qu'ils arriveront a corriger ce probleme, en attendant je conseille d'utiliser KhiCAS+Delta https://parisseb.github.io/nw-external-apps qui apporte d'importantes fonctionnalites pour tout ce qui touche aux maths.

Concernant graphic, l'affichage d'une touche EXIT vient du portage sur Casio, il faut effectivement ajouter une touche pour quitter le graphique, differente de celle qui interrompt un script, si vous avez une suggestion je suis preneur.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 18.7%
 
Messages: 2364
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié

PrécédenteSuivante

Retourner vers News NumWorks

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

-
Rechercher
-
Social
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.2 pour les Nspire CX II
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
1234
-
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.
589 utilisateurs:
>570 invités
>14 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)