我有一些 32 位和一些 64 位的 PC 盒。我在所有机器上都保留了 CCL 实现的本地 svn 存储库,并且我在所有机器上都有相同的.bashrc
配置.emacs
。因此,当我喜欢在 Emacs 中通过 Slime 使用 CCL 时,我只需输入前缀M-- M-x slime
,然后输入ccl32
,因为我前段时间ccl64
在我的配置中放了类似的东西。.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*))
...
有任何想法吗?