L’équipe de développement de Yamwi a le plaisir d’annoncer la sortie d’une nouvelle version (v. 2026-04-29).
Yamwi (Yet Another Maxima Web Interface) est une interface web pour le système de calcul formel Maxima. Elle repose sur Linux+Apache+PHP. Développé à l’origine par Mario Rodríguez Riotorto et hébergé sur Sourceforge, le projet est désormais poursuivi par une nouvelle équipe de développeurs sur Github.
Note importante
Cette version contient un correctif de sécurité critique. Les administrateurs de sites sont invités à mettre à jour immédiatement.
Sécurité
Nouveaux mots interdits
eval_lisp_string : cette fonction permet l’exécution de code arbitraire (voir Issue 19).
Anciens mots interdits
killn’est plus un mot interdit. Sa fonctionnalité a été restreinte :kill(all)etkill(allbut(...))génèrent des avertissements. La suppression de variables contenant des informations d’état importantes pour Yamwi est également interdite (voir Issue 16 et Commit daf5d7b40f).demon’est plus un mot interdit. Il est désormais synonyme debatch, car Yamwi ne permet pas d’interaction ligne par ligne (voir Issue 15).load(drawdf);fonctionne comme prévu ;loadn’est plus un mot interdit (voir Issue 1).concat,sconcatetprintfne sont plus interdits (voir Issue 18).translateetcompilene sont plus interdits.entermatrixn’est plus interdit (voir points 6 et 8 dans la section suivante).
Modifications de l’interface utilisateur
- Les entrées et sorties peuvent désormais être affichées sous forme d’expressions S Lisp (Sexps). Les utilisateurs curieux de savoir comment Maxima représente les objets mathématiques peuvent utiliser ces options d’affichage.
- Amélioration de la gestion des entrées verbatim (voir Issue 5).
- Amélioration de la gestion des messages d’erreur de Maxima et Gnuplot (SBCL, ECL ; pas GCL ni CLISP).
- Correction du code TeX pour les matrices et
diff(voir Issue 6 et Issue 11). - Affichage de la bannière Maxima en en-tête de la sortie, à l’instar des autres interfaces.
- La commande
tracede Maxima fonctionne désormais, sous réserve d’un correctif appliqué à Maxima (voir Issue 17). - Les commandes comme
integrate(x^n,x);, qui nécessitent une réponse à la question « n est-il égal à -1 ? », peuvent désormais intégrer la réponse directement dans la saisie (voir Issue 12). - Les commandes comme
read("saisir un nombre :");affichent désormais correctement leur invite (saisir un nombre). La réponse peut être placée sur la ligne suivante et est lue correctement (voir Issue 13). - Davantage de commandes sont disponibles pour l’utilisateur (voir la liste dans Anciens mots interdits).
- L’impression en PDF a été améliorée. Les figures ne devraient plus être coupées entre les pages.
- La sortie MathML a été améliorée (nécessite des mises à jour de Maxima).
- Yamwi devrait générer du HTML entièrement conforme, validé par le validateur W3C. Si vous trouvez une page non conforme, veuillez signaler un bug en incluant un lien vers la page concernée.
Lisps supportés
Maxima fonctionne avec plusieurs implémentations de Common Lisp. Pour cette version, en utilisant un serveur Debian 13 installé sur une machine virtuelle, les implémentations suivantes sont supportées :
SBCL, ECL
Entièrement supportés.
GCL
Partiellement supporté, non recommandé. Plusieurs problèmes entravent l’utilisation de GCL sur un serveur :
- Fonctionne avec Yamwi servi sur localhost.
- Les versions récentes de Maxima ne peuvent pas être compilées avec GCL. Elles doivent l’être avec GCL27.
- Le paquet Maxima Debian basé sur GCL présente des problèmes majeurs lors de la compilation et du chargement du paquet
draw. - GCL ne relie pas correctement le flux
*error-output*. Cela limite les rapports d’erreurs par rapport à SBCL et ECL et nécessite unrun-programpersonnalisé (basé sursi:run-process).
Clisp
Non supporté. Quelques problèmes restent à résoudre :
- Fonctionne avec Yamwi servi sur localhost.
- Des problèmes d’accès au système de fichiers apparaissent lors de l’exécution via Apache. Des correctifs sont les bienvenus.
- L’implémentation de
run-programpar Clisp est défectueuse (ni*standard-output*ni*error-output*ne peuvent être correctement liés pour rediriger ces flux de sortie). Aucune solution satisfaisante n’est connue à ce jour.
Téléchargement
Téléchargez le fichier de version tar.gz depuis la page du projet : https://github.com/leo-butler/yamwi/releases/.
Implémentation de référence
Deux serveurs Yamwi en ligne sont maintenus par le projet :
- https://net124.reltub.ca/yamwi/ : sert la dernière version stable de Yamwi.
- https://net124.reltub.ca/yamwi-dev/ : sert la dernière version de Yamwi depuis la branche principale du dépôt Github (la synchronisation avec HEAD peut prendre jusqu’à 24 heures).
Références sur maxima-french-doc.fr
- Yamwi est présenté sur la page Interfaces.
- Une version française, appelée Yamwifr, est disponible sur la page Interfaces.
