粘液运行右CCL

时间:2015-11-11 20:20:24

标签: emacs common-lisp dot-emacs ccl

我有一些32位和64位的PC盒。我在所有这些上保留了CCL实现的本地svn回购,并且我在所有框上都有相同的.bashrc.emacs配置。因此,当我想通过Slime在Emacs中使用CCL时,我只需在前缀M-- M-x slime后输入,然后输入ccl32ccl64,因为我在.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中设置一些条件并让它决定哪个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*))
...

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

抱歉这个愚蠢的问题。我不知道Elisp有像CL那样的反击。所以

(add-to-list 'slime-lisp-implementations `(ccl (,*ccl-command*)))

做了这个伎俩。