maxima-sbcl和maxima-openmcl的区别是不同编译器编译出来的罢了。或者是两个版本maxima里面用到的lisp运行环境(runtime)不同。openmcl现在已经改名为Clozure CL,而Clozure CL官方wiki的描述是:Clozure CL is free。
一、maxima-sbcl和maxima-openmcl的区别
maxima-sbcl和maxima-openmcl的区别是不同编译器编译出来的罢了。或者是两个版本maxima里面用到的lisp运行环境(runtime)不同。openmcl现在已经改名为Clozure CL,而Clozure CL官方wiki的描述是:Clozure CL is free。
Clozure CL 是一个自由的 Common Lisp 的实现。
而sbcl官方的描述是:Steel Bank Common Lisp (SBCL) is a high performance Common Lisp compiler.SBCL是一个高性能的Common Lisp编译器。
有的开源软件发布时,二进制版本会用不同编译方式编译出来以供不同喜好的人选择。
SBCL的整个编译过程花费的时间比较长。如果在SBCL代码上做了一些小的修改以后,想要重新编译查看效果,可以尝试使用源代码目录下的slam.sh。slam.sh将会尝试使用交叉编译器xc重新编译修改过的文件,然后使用通常的方式执行genesis和make-target-2阶段。
当然,另一个小建议是,尽量不要去碰SBCL的代码。关于SBCL的文档实在是少的可怜;而经过一段时间的研究以后,我又发现单纯看SBCL代码实在是非常痛苦的一件事,Orz。。。
PS1: 这篇文章主要参考了SBCL: a Sanely-Bootstrappable Common Lisp这篇文章、SBCL源代码以及CLiki.net网站。
PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia)。据说yEd也很不错。
延伸阅读:
二、CLISP
CLISP是byte code解释器,一般认为其可移植性比较好。我以前有几年经常要在Windows下面用Cygwin,当时Lisp开发上用的就是CLISP,因为这个是可以直接从Cygwin setup界面下载安装的。也有试过SBCL,印象里CLISP的报错什么的比SBCL要好一些。虽然SBCL会比较快,但是如果实际应用不需要那么快的话就没有太大的必要了。另外,虽然两个都是支持Common Lisp,但实际要移植代码的话可能会有些小的地方不一样