π
<-
Chat plein-écran
[^]

KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby Adriweb » 06 Jun 2020, 22:58

J'ai pu avancé en faisant ca, oui.

Et finalement, c'est bon avec giac-1.6.0 (avant j'avais la 1.2 je sais pas trop d'ou), mais il a fallu que je corrige quelque "vector" en "std::vector" dans modpoly.h sinon ca ne compilait pas.

Yapuka demander a Vogtinator si on peut override le flag disant que c'est bon pour ne pas passer par le mode de compat, ou si y'en a en fait vraiment besoin...
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby Adriweb » 06 Jun 2020, 23:35

Quelques screenshots, meme si j'arrive pas a faire de calculs ou lancer un script (j'ai toujours une erreur, bad argument ou qqchose du genre, aussi "stopped in in_eval") :

Image Image Image
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby parisse » 07 Jun 2020, 07:04

J'ai mis a jour le source avec la correction dans le fichier header, et j'ai rajoute un README.nspire (cf. ci-dessous) expliquant comment compiler, il faudra aussi inclure tout ca dans la doc HTML.
Par contre c'est curieux que le noyau de calcul bloque. Stopped in in_eval est le message d'erreur qui est declenche lorsqu'on interrompt un calcul en tapant sur la touche ON.

giac/KhiCAS sur TI nspire CX
============================
Pour cross-compiler KhiCAS, il faut installer le SDK de ndless
https://hackspire.org/index.php/C_and_a ... troduction

Ensuite installer GMP, MPFR, MPFI les versions importent peu mais autant prendre les plus recentes. Il suffit de prendre les archives standard (https://gmplib.org/, https://www.mpfr.org/, https://gforge.inria.fr/frs/?group_id=157), a cross-compiler, ce qui peut se faire avec les instructions suivantes
Code: Select all
    #! /bin/bash
    export CC=nspire-gcc
    export CXX=nspire-g++
    export LD=nspire-ld
    export AR=arm-none-eabi-ar
    export AS=nspire-as

puis pour compiler GMP
./configure --host=arm-none-eabi
installer a la main gmp*h dans chemin_vers_ndless-sdk/toolchain/install/include et libgmp.a vers chemin_vers_ndless-sdk/toolchain/install/lib
puis pour compiler MPFR
./configure --with-gmp=chemin_vers_ndless-sdk/toolchain/install --host=arm-none-eabi
meme procedure d'install et compilation de MPFI de maniere analogue.

Puis recuperer le source a jour de giac,
https://www-fourier.univ-grenoble-alpes ... .0.tar.bz2
cp config.h.nspire config.h
editer Makefile.nspire pour s'adapter a votre installation locale et faire
make -f Makefile.nspire

Si vous faites des modifications et que vous voulez executer en pas a pas au debuggueur:
* a faire une fois: installez firebird-emu
https://github.com/nspire-emus/firebird.
Installer sur l'emulateur les fichiers de boot et de flash de votre
nspire CX. Puis envoyez avec firebird-send ndless 4.5.0 pour la nspire
(viewtopic.php?t=20446), activez ndless.
Faites deux sauvegardes (dont une de snapshot pour redemarrer firebird-emu).
* apres chaque compilation: envoyez l'executable giac.tns sur l'emulateur.
Tapez alors dans un shell la commande
arm-none-eabi-gdb -ex "target remote localhost:3333" giac.elf
ou dans emacs: Esc x gdb (enter) puis
arm-none-eabi-gdb -i=mi -ex "target remote localhost:3333" giac.elf
Cela doit interrompre l'emulateur (affichage grise). Mettez un point
d'arret dans votre code source (dans emacs Ctrl-X Ctrl-A Ctrl-B sur
la ligne souhaitee, dans gdb avec la commande b pour break, b nom de fonction
ou b nom de ficher source:numero de ligne) et tapez c (cont).
Ensuite lorsque le point d'arret est atteint vous pouvez executer en pas
a pas comme avec une session gdb normale
(p print, n next, s step into, f frame, u until, c continue, etc.).
Dans le repertoire src de giac, il y a un fichier .gdbinit qui contient
une macro fort utile pour afficher des variables de type gen,
c'est v (comme voir) qui s'utilise comme p mais au lieu d'afficher
la variable comme une structure C, il l'affiche comme dans Xcas.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 0.9%
 
Posts: 2011
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby Adriweb » 07 Jun 2020, 21:51

De mon coté, ca a buildé avec les toutes dernieres version de gmp/mpfr/mpfi.

J'ai une suggestion qui me permettra de faire un script générique:
Au lieu de mettre en hardcodé les chemins, utiliser plutot une variable (d'environnement) comme
$NDSDK
. Au moins chacun customise ca sur son ordi, et le script est générique.
Donc ca donnerait, pour MPFR etc. : ./configure --with-gmp=$NDSDK --host=arm-none-eabi tout simplement, sans avoir besoin de le changer.
Et donc les developpeurs auront juste a mettre quelque chose comme export NDSDK=/home/toto/ndless-sdk dans leur .bashrc ou .bash_profile ou .zshrc equivalent.
Possible de mettre a jour les archives utilisant des trucs harcdcodés ici ou la, et de mentionner dans le readme l'export a faire ?

Par ailleurs, je ne sais pas trop pourquoi/comment ca peut marcher actuellement pour les libs/headers (ou alors c'est parce que ca se rajoute et non remplace... mais quand meme) pour gmp/mpfr/mpfi parce qu'il faut en fait non pas les mettre dans [...]/ndless-sdk/toolchain/install/{lib,include} (ca c'est interne a la toolchain), mais dans [...]/ndless-sdk/{lib,include} (c'est la ou il y a tous les autres fichiers .a et .h utilises au build de projets utilisant des libs).
Autrement dit, ici :
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby parisse » 08 Jun 2020, 05:58

De mon point de vue, GMP/MPFR/MPFI devraient etre disponibles dans la toolchain! Mais le chemin exact d'install des librairies n'a pas vraiment d'importance du moment qu'ils sont automatiquement recherches par la toolchain, je voulais en tout cas eviter de devoir ajouter des -I... et des -L dans les lignes de commande de compilation et de link.
Je peux evidemment modifier le Makefile.nspire et le README.nspire pour faciliter le travail aux developpeurs, du moment qu'on me fournit les modifs (et que ca marche chez moi!)...
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 0.9%
 
Posts: 2011
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby Adriweb » 08 Jun 2020, 06:20

Je vais demander à Vogtinator ce qu'il en pense, je pense pas que ce soit très problématique d'avoir ces libs en plus :)
Ca simplifiera d'autant plus le build vu qu'il n'y aura presque plus rien à faire comme pré-requis "custom".
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby parisse » 08 Jun 2020, 10:10

Nouvelle mise a jour, avec une amelioration pour la documentation en ligne. La touche "livre" sert dorenavant de touche de completion/affichage de la documentation sur une commande, la touche tab fait la meme chose dans le shell KhICAS (comme dans un terminal unix) et tab sert a re-indenter une ligne dans l'editeur de scripts. Une grande partie de l'aide est maintenant disponible en 5 langues (francais, anglais, espagnol, grec et allemand).
https://www-fourier.univ-grenoble-alpes.fr/~parisse/ti/khicas.zip
(Le source devrait aussi etre a jour.)
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 0.9%
 
Posts: 2011
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby parisse » 10 Jun 2020, 13:17

Mise a jour (https://www-fourier.univ-grenoble-alpes ... khicas.zip) avec un mode examen fantome, i.e. qui ne fait pas clignoter les LEDs.
Quand ce mode est actif on ne peut plus consulter de documents utilisateurs et on ne peut plus quitter KhiCAS (sauf par reset de la calculatrice). Voici comment activer le mode examen de KhiCAS:
Appuyer sur la touche "calculatrice" (en-dessous de esc), cela ouvre le setup de KhiCAS puis sur la touche e^x. On demande la duree de l'examen en heures. Vous avez 3 possibilites:
  • mettre un nombre positif: dans ce cas le mode examen se desactive sans connexion une fois le delai ecoule +3%. Le delai restant est affiche pendant toute la duree de l'examen dans la ligne d'etat. Ce mode n'est pas conforme a la reglementation francaise actuelle
  • mettre 0: le mode examen ne peut etre desactive qu'en branchant sur un ordi. Taper menu menu pour desactiver le mode examen (ou bien calculatrice fleche vers le haut enter).
  • mettre un nombre negatif (l'oppose du delai): le mode examen ne peut etre desactive qu'en branchant sur un ordi, le temps indicatif restant est affiche pendant toute la duree de l'examen.
Si certains forumeurs veulent tester, je suis interesse par un feedback. Attention, je vous conseille de tester un delai positif du genre 0.01 ou 0.02 pour verifier que la desactivation par connexion marche (si ca ne marche pas au pire vous attendrez que le delai de 37 ou 74 secondes expire).
L'idee est de montrer que la communaute peut produire du logiciel qui peut etre mis en conformite avec le mode examen (si on fait clignoter les LEDs bien sur), sans presenter plus de failles que le mode examen des constructeurs. Et en prime, suggerer des ameliorations: je pense qu'afficher le delai de temps restant est tres utile pour les eleves/etudiants qui n'ont pas toujours de montre (car ils utilisent leur smartphone pour ca mais en examen le smartphone n'est pas accessible). Et que forcer l'arret par connexion peut poser des problemes alors qu'un arret automatique du mode examen apres un delai egal a la duree de l'epreuve n'a pas cet inconvenient.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 0.9%
 
Posts: 2011
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby critor » 13 Jun 2020, 17:43

Superbe ! :D

Dans une version finale, pour la France
(détection de la langue française comme fait NumWorks ?...)
, il faudrait ignorer le délai et n'autoriser la désactivation que par connexion externe.
Il me semble en effet essentiel pour une telle réalisation de respecter la réglementation actuelle à la lettre près.

Et bien sûr aussi, il faudrait que ça clignote... ;)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6%
 
Posts: 35489
Images: 9480
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire

Unread postby parisse » 15 Jun 2020, 08:49

Je suis en train de tester l'ajout du support de l'interpreteur micropython a l'interieur de l'environnement KhiCAS. L'idee est de laisser l'utilisateur quel interpreteur il choisit pour evaluer sa ligne de commande.

Pour le moment c'est juste un prototype pour tester l'idee et l'interet que ca suscite. S'il y a de l'interet on peut surement ajouter des modules au portage existant de micropython, ceux existant chez les constructeurs (a commencer par (u)random, mais aussi les modules graphiques et graphique dans un repere) et pourquoi pas un module de calcul formel. Apres on pourrait le porter aussi chez Numworks.

Sur le prototype, le passage de l'interpreteur Xcas a Python se fait en tapant python (enter), le retour vers Xcas en tapant xcas (enter).
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 0.9%
 
Posts: 2011
Joined: 13 Dec 2013, 16:35
Gender: Not specified

PreviousNext

Return to News TI-Nspire

Who is online

Users browsing this forum: No registered users and 52 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.
613 utilisateurs:
>606 invités
>2 membres
>5 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)