Слизь для запуска справа CCL

У меня есть несколько ПК с 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*))
...

Есть идеи?


person oakenshield1    schedule 11.11.2015    source источник


Ответы (1)


Извините за глупый вопрос. Я не знал, что у Элиспа тоже есть обратная черта, как у CL. Так

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

сделал трюк.

person oakenshield1    schedule 11.11.2015