У меня есть несколько ПК с 32- и 64-битными версиями. Я держу локальное репозиторий svn с реализацией CCL на всех них, и у меня одинаковые конфигурации .bashrc
и .emacs
на всех коробках. Поэтому, когда мне нравится использовать CCL из Emacs через Slime, я просто набираю префикс 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*))
...
Есть идеи?