Je suis en train d'approfondir le fonctionnement de giac/xcas sur deux machines très différentes sous ubuntu :
un pc classique x86-64 et un petit smartbook Hercules-ecafé à processeur arm.
A ma connaissance giac/xcas est le premier système de calcul formel diffusé sur ces deux architectures.
Je préfère utiliser emacs comme environnement de travail plutot que xcas ou qu'un bête mode terminal.
Je lance donc "giac --emacs" dans emacs.
Les sorties de giac sont alors encadrées de caractères de balises ctrl-F, ctrl-G, ctrl-B, etc.
Une fois traitées par emacs, cela permettra de colorier automatiquement une sortie selon son type :
un résultat, un message d'erreur, un signe d'invite, etc.
J'ai plus de problèmes sur pour la saisie des données dans "giac --emacs" :
Le protocole a du être choisi pour être compatible avec mupad il y a "pas mal" de temps.
D'après le code de l'interface mupacs (fichier mupad-run.el) d'emacs pour mupad, le protocole semble être :
"ctrl-F la chaine à calculer, par ex 44! ou 2*3 ctrl-G" (avec éventuellement un passage à la ligne).
Lorsque j'envoie cette chaine au programme, j'obtiens bien l'invite d'une nouvelle commande : giac réagit.
mais le système ne renvoie aucun résultat avant.
Quel est le mode de fonctionnement de giac dans ce cas.
Bien cordialement.
F.
Voila le code emacs minimal à exécuter : (par eval-buffer)
(le prefixe egx signifie pour moi Emacs, Giac et Xcas)
----------------------------------------------------------------------------------------------------------------------------------
Code : Tout sélectionner
(defvar egx-process-state nil)
(defun egx-process-force-start ()
(setq egx-process
(apply (function start-process)
"giac" (current-buffer) "giac" '("--emacs")))
(set-process-filter egx-process (function egx-process-filter)))
(defun egx-process-force-send-command (str)
(process-send-string egx-process (concat "\006" str "\007\n")))
(defun egx-process-filter (proc str)
(insert str))
(progn (switch-to-buffer "giac")(egx-process-force-start))
Le résultat obtenu
// Using locale /usr/share/locale/
// fr_FR.UTF-8
// /usr/share/locale/
// giac
// UTF-8
// Maximum number of parallel threads 2
// Using keyword file /usr/share/giac/doc/fr/keywords
Help file /usr/share/giac/doc/fr/aide_cas not found
Added 161 synonyms
Giac CAS for mupacs, released under the GPL license 3.0
| (c) 2006, 2011 B. Parisse & al (giac), F.Maltey & al (mupacs) |
>>
-------------------------------------------------------------------------------------------------------------------------------------------------
La commande envoyée par emacs est de la forme suivante (ici 234!)
(egx-process-force-send-command "\006 234! \n\007\n")
-------------------------------------------------------------------------------------------------------------------------------------------------
Le résultat obtenu est uniquement le message d'invite et les caractères de controles.
>>
>>