4 votes

Comment importer maxima dans sbcl

Comme nous le savons, Maxima est basé sur Common Lisp. J'écris un programme lisp qui fonctionne dans Maxima ; en utilisant des procédures Maxima. J'utilise l'argument "maxima -p foo.lisp" pour charger le fichier lisp, et cela fonctionne bien. Cependant, je suis mauvais en programmation, donc mes programmes ont beaucoup de bogues. Je veux déboguer mon programme, mais je me rends compte que ce n'est pas si facile.

Je me suis habitué à slimv, un vim-script pour étendre le support lisp de vim. Slimv est un outil génial, qui contient swank pour se connecter entre slimv et l'interpréteur lisp, mais quand j'ai chargé 'start-swank.lisp' dans le mode Lisp de Maxima, il a retourné une erreur :

>> Error in CONDITIONS::CLCS-LOAD [or a callee]: The variable *LOAD-TRUENAME* is unbound.

J'ai réalisé que c'était dû à gcl. Je suis donc venu chercher maxima-sbcl. Cependant, il n'y a pas de paquet officiel de maxima-sbcl. J'ai été déçu.

Je me demande si je peux charger l'ensemble de maxima dans sbcl. Si c'est le cas, je peux le lire dans REPL de swank, et déboguer mon programme avec succès.

Ou quelqu'un a-t-il de meilleures idées ?

4voto

sabof Points 4628

Je suis tombé sur ce projet, qui pourrait correspondre à ce que vous recherchez.
https://github.com/filonenko-mikhail/embeddable-maxima

C'est le blog du développeur (russe) qui mentionne les nuances d'usage

3voto

Clayton Stanley Points 2211

En parcourant la documentation de Maxima, il semble que le code source puisse être compilé par SBCL :

Notes sur les implémentations Lisp pour Maxima :

2 3 Clisp, CMUCL, Scieneer Common Lisp (SCL) 4 et SBCL peuvent compiler et exécuter Maxima

Vous pourriez obtenir une certaine traction de cette façon :

[1] Load up your SBCL (and default core file).
[2] Load Maxima into that lisp session
[3] Save the core file
[4] Kill the swank server
[5] Replace the old core file with the new core file
[6] Restart the swank server

Vous pouvez également consulter la page "ports" du site Maxima. J'y ai trouvé un portage SBCL fink de Maxima pour OS X.

2voto

Robert Dodier Points 2614

A propos de la reconstruction de Maxima avec seulement Lisp, voir INSTALL.lisp dans le code source de Maxima. http://maxima.git.sourceforge.net/git/gitweb.cgi?p=maxima/maxima;a=arbre

La méthode décrite par INSTALL.lisp fait appel à defsystem. Vous pouvez, alternativement, utiliser ASDF. En supposant que vous avez décompressé le code source, vous devriez être en mesure de faire exactement ce qui suit

(require 'asdf)
(asdf:operate 'asdf:load-op :maxima)

et ensuite vider l'image Lisp ou lancer Maxima immédiatement,

(cl-user::run)

Note : j'ai probablement omis certains détails concernant l'approche du FADS.

Désolé pour la réponse tardive. Je la laisse ici au cas où quelqu'un la trouverait en cherchant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X