2012-02-27 72 views
3

正如我們所知,Maxima基於通用lisp。我正在寫一個在Maxima工作的Lisp程序;使用Maxima程序。我按參數「maxima -p foo.lisp」來加載lisp文件,並且效果很好。但是,我在編程方面很差,所以我的程序有很多錯誤。我想調試我的程序,但我意識到它並不那麼容易。如何將最大值導入sbcl

我習慣了slimv,一個vim腳本來擴展vim的lisp支持。 Slimv是一個真棒工具,其中包含斯旺克以slimv和Lisp解釋之間的連接,但是當我加載千里馬的Lisp的模式「啓動swank.lisp」,它返回一個錯誤:

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

我意識到,這是由於gcl。所以我來搜索maxima-sbcl。但是,沒有官方的maxima-sbcl包。我很失望。

我想知道我是否可以將全部最大值加載到sbcl中。如果是這樣,我可以在swank的REPL中讀取它,併成功調試我的程序。

還是有誰有更好的想法?

回答

3

瀏覽千里馬文檔,似乎源代碼可以通過SBCL編譯:

Notes on Lisp implementations for Maxima:

2 3 Clisp, CMUCL, Scieneer Common Lisp (SCL), GCL (ANSI-enabled only) 4 and SBCL can compile and execute 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網站。我在那裏找到了Maxima的SBCL fink端口。

+0

我不知道如何加載它。 Maxima的文檔顯示我應該重新編譯Maxima。 – 2012-02-28 07:43:05

+0

我想或者從src使用SBCL進行編譯,然後加載這些fasls,或者爲您的平臺找到SBCL端口,並使用這些fasls – 2012-02-28 15:05:41

2

關於與剛剛重建千里馬Lisp中,請參閱Maxima源代碼中的INSTALL.lisp。 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的圖像或立即啓動千里馬,

(cl-user::run) 

注:可能是我忽略了一些細節關於ASDF方法。

對不起,延遲迴復。如果有人通過搜索找到它,留在這裏。