我们知道,Maxima是基于通用lisp的。我正在编写一个使用Maxima的lisp程序;使用Maxima过程。我按参数"maxima -p foo.lisp“加载lisp文件,它工作得很好。然而,我不擅长编程,所以我的程序有很多bug。我想调试我的程序,但我意识到这并不容易。
我习惯了slimv,这是一个vim脚本,用来扩展对vim的lisp支持。Slimv是一个很棒的工具,它包含了连接slimv和lisp解释器的swank,但是当我在Maxima的Lisp模式下加载'start-swank.lisp‘时,它返回了一个错误:
>> Error in CONDITIONS::CLCS-LOAD [or a callee]: The variable *LOAD-TRUENAME* is unbound.我意识到这要归功于gcl。所以我来搜索maxima-sbcl。然而,没有maxima-sbcl的官方包。我很失望。
我想知道是否可以将整个maxima加载到sbcl中。如果是这样,我就可以在swank的REPL中读取它,并成功地调试我的程序。
或者有谁有更好的想法?
发布于 2012-03-01 19:26:12
我偶然发现了这个项目,它可能就是你要找的
https://github.com/filonenko-mikhail/embeddable-maxima
这是提到用法细微差别的developer's blog (俄语
发布于 2012-02-28 02:34:38
浏览Maxima文档,源代码似乎可以由SBCL编译:
关于Maxima的Lisp实现的说明:
2 3 Clisp、CMUCL、Scieneer Common Lisp (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站点上的'ports‘页面。我在那里找到了一个用于OS X的SBCL fink端口Maxima。
发布于 2012-06-01 02:28:05
关于仅用Lisp重建Maxima,请参阅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镜像或立即启动Maxima,
(cl-user::run)注意:我可能省略了一些关于ASDF方法的细节。
抱歉,回复晚了。把这个留在这里以防有人通过搜索找到它。
https://stackoverflow.com/questions/9463899
复制相似问题