π
<-
Chat plein-écran
[^]

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

Online

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

Unread postby M4x1m3 » 24 Jul 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: Select all
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.
User avatar
M4x1m3Programmeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 57.5%
 
Posts: 107
Joined: 13 Oct 2019, 21:10
Location: Bas-Rhin (67)
Gender: Male
Calculator(s):
Class: 1ere année DUT Informatique
GitHub: M4xi1m3

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

Unread postby parisse » 25 Jul 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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 3.8%
 
Posts: 2065
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby overlife » 31 Jul 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,
User avatar
overlife
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 25%
 
Posts: 6
Joined: 31 Jul 2020, 10:23
Gender: Not specified

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

Unread postby parisse » 31 Jul 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)
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 3.8%
 
Posts: 2065
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby overlife » 31 Jul 2020, 12:42

Je vous remercie beaucoup pour votre réponse rapide.
User avatar
overlife
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 25%
 
Posts: 6
Joined: 31 Jul 2020, 10:23
Gender: Not specified

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

Unread postby overlife » 01 Aug 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,
User avatar
overlife
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 25%
 
Posts: 6
Joined: 31 Jul 2020, 10:23
Gender: Not specified

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

Unread postby parisse » 02 Aug 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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 3.8%
 
Posts: 2065
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby overlife » 02 Aug 2020, 11:20

Merci pour votre réponse, je vous souhaite un très bon dimanche !
User avatar
overlife
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 25%
 
Posts: 6
Joined: 31 Jul 2020, 10:23
Gender: Not specified

Online

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

Unread postby critor » 06 Aug 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.8%
 
Posts: 35629
Images: 9549
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

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

Unread postby parisse » 06 Aug 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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 3.8%
 
Posts: 2065
Joined: 13 Dec 2013, 16:35
Gender: Not specified

PreviousNext

Return to News NumWorks

Who is online

Users browsing this forum: No registered users and 11 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
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 Calculatrices à acheter chez Calcuso
-
Stats.
657 utilisateurs:
>641 invités
>10 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)