SLIME и swank образуют архитектуру клиент-сервер для запуска и отладки программ lisp. SLIME - это внешний интерфейс emacs, а swank - внутренний. Между ними они создают сетевой сокет и обмениваются данными, отправляя сообщения (S-выражения). Короче говоря, это всего лишь механизм RPC между emacs и реальным бэкэндом lisp.
Тот факт, что слизь и червь разделены, связаны по сети и обмениваются сообщениями rpc, означают, что они могут быть где угодно. Таким образом, слизь может подключиться к удаленному хосту / порту для подключения. Все остальные формы, которые вы видите (lein swank и т. Д.), Делают то же самое. Они начинают подключаться к порту, позволяя удаленно подключать слизь.
swank-clojure - это закрытый порт swank. Первоначально swank-clojure поставлялся с вспомогательным файлом elisp под названием swank-clojure.el. Задача этого файла состояла в том, чтобы включить ручную настройку параметров swank, таких как classpath, параметры jvm и т. Д. Так как другие инструменты, такие как lein, появились позже, swank-clojure.el устарел. Но он все еще живет по адресу: http://github.com/vu3rdd/swank-clojure-extra и предоставляет M-x swank-clojure-project, который позволяет запускать swank в проекте lein.
Следует отметить, что SLIME возникла (и все еще активно разрабатывается) в Common Lisp. Infact, Clojure порт Суонк имеет только подмножество функций, которыми пользуются оригинальные версии SLIME / Суонк. SLIME существует для всех основных вариантов Common Lisp. Это частичный порт для Scheme48. В каталоге contrib есть несколько частичных реализаций.
Если вы знаете, что swank уже работает в порту, используйте slime-connect. Если вы просто хотите использовать слизь в проекте, лучше всего использовать swank-clojure-project и lein swank.