我有一些PC盒,一些32位和一些64位。我在所有的机器上都保存了一个本地svn repo的CCL实现,并且我在所有机器上都有相同的.bashrc和.emacs配置。
(setq slime-lisp-implementations
`((sbcl ("/usr/bin/sbcl" "--noinform" "--no-linedit"))
(ccl32 ("/path/to/32bit/ccl/lx86cl"))
(ccl64 ("/path/to/64bit/ccl/lx86cl64"))
(abcl ("java" "-jar" "/usr/local/share/java/abcl-bin-1.3.3/abcl.jar"))))我的问题是,我只想在.emacs中加入一些come条件,让它来决定运行哪个CCL。所以我写了这样的东西。
(defvar *ccl-command*)
(cond ((not (null (string-match ".*64.*" system-configuration)))
(setq *ccl-command* "/path/to/64bit/ccl/lx86cl64"))
((not (null (string-match ".*86.*" system-configuration)))
(setq *ccl-command* "/path/to/32bit/ccl/lx86cl")))它很管用,但当我尝试将这个变量放入上面的slime-lisp-implementations中时,它就不起作用了,比如:
...
(ccl (*ccl-command*))
...有什么想法吗?
发布于 2015-11-12 04:58:53
很抱歉问了这么愚蠢的问题。我不知道Elisp也像CL一样有反划线。所以
(add-to-list 'slime-lisp-implementations `(ccl (,*ccl-command*)))成功了。
https://stackoverflow.com/questions/33659106
复制相似问题