Как импортировать максимумы в sbcl - PullRequest
3 голосов
/ 27 февраля 2012

Как мы знаем, максима основана на общем шуме.Я пишу программу LISP, работающую в Maxima;используя процедуры Maxima.Я нажимаю аргумент "maxima -p foo.lisp", чтобы загрузить файл lisp, и он работает хорошо.Однако я плохо разбираюсь в программировании, поэтому в моих программах много ошибок.Я хочу отладить свою программу, но понимаю, что это не так просто.

Я привык к slimv, vim-скрипту для расширения поддержки vim для lisp.Slimv - это потрясающий инструмент, который содержит swank для соединения между slimv и lisp-интерпретатором, но когда я загрузил 'start-swank.lisp' в Lisp Mode of Maxima, он вернул ошибку:

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

Iпонял, что это связано с gcl.Итак, я пришел искать максима-sbcl.Однако официального пакета maxima-sbcl не существует.Я был разочарован.

Интересно, смогу ли я загрузить все максимумы в sbcl.Если это так, я могу прочитать его в REPL of swank и успешно отладить свою программу.

Или есть кто-нибудь, у кого есть идеи получше?

Ответы [ 3 ]

4 голосов
/ 01 марта 2012

Я сталкивался с этим проектом, который может быть тем, что вы ищете
https://github.com/filonenko-mikhail/embeddable-maxima

Это блог разработчика (русский), в котором упоминаются нюансы использования.

3 голосов
/ 27 февраля 2012

Просматривая документацию Maxima, кажется, что исходный код может быть скомпилирован с помощью SBCL:

Замечания по реализации Lisp для Maxima:

2 3 Clisp, CMUCL, Scieneer CommonLisp (SCL), GCL (только с поддержкой ANSI) 4 и SBCL могут скомпилировать и выполнить Maxima

Вы можете получить некоторую тягу таким образом:

[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

В качестве альтернативы, проверьтестраница портов на сайте Maxima.Я нашел там порт fink SBCL Maxima для OS X.

2 голосов
/ 31 мая 2012

О восстановлении Maxima с использованием только Lisp, смотрите INSTALL.lisp в исходном коде Maxima. http://maxima.git.sourceforge.net/git/gitweb.cgi?p=maxima/maxima;a=tree

Метод, описанный INSTALL.lisp, использует defsystem. Вы также можете использовать ASDF. Предполагая, что у вас есть исходный код распакован, вы сможете сделать только

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

, а затем выгрузить образ Lisp или немедленно запустить Maxima,

(cl-user::run)

Примечание: возможно, я пропустил некоторые подробности о подходе ASDF.

Извините за поздний ответ. Оставьте это здесь на случай, если кто-то найдет его в результате поиска.

...