Мое поверхностное понимание состоит в том, что 'swank-clojure' делает возможным «Mx slime-connect». Я имею в виду, что это дает подключение к серверу clojure что-то вроде 'lein swank'. Правильно ли мое понимание? Если нет, то какова цель swank?
Тогда есть ли swank-SOMETHING_ELSE для других реализаций, подобных lisp? Например, swank-clisp?
Нужно ли мне «swank-clojure» для использования SLIME / Clojure с «Mx slime»?
SLIME и swank образуют клиент-серверную архитектуру для запуска и отладки программ Lisp. SLIME - это интерфейс Emacs, а swank - это серверная часть. Между ними они создают сетевой сокет и обмениваются данными, отправляя сообщения (S-выражения). Короче говоря, это просто механизм RPC между emacs и фактическим бэкэндом lisp.
Тот факт, что слизь и сванк разделены, связаны по сети и общаются через сообщения rpc, означает, что они могут быть где угодно. Таким образом, слизь может подключаться к удаленному хосту / порту для работы. Все остальные формы, которые вы видите (lein swank и т. Д.), Делают то же самое. Они запускают порт, позволяющий удаленно подключать слизь.
swank-clojure - порт закрытия swank. Первоначально swank-clojure поставлялся с вспомогательным файлом elisp под названием swank-clojure.el. Задача этого файла заключалась в том, чтобы включить ручную настройку параметров swank, таких как пути к классам, параметры jvm и т. Д. Поскольку другие инструменты, такие как lein, появились позже, swank-clojure.el устарел.Но он все еще живет по адресу: http://github.com/vu3rdd/swank-clojure-extra и предоставляет проект M-x swank-clojure, который позволяет запускать swank в проекте lein.
Следует отметить, что SLIME возникла (и все еще активно разрабатывается для) Common Lisp. Фактически, закрытие порта swank имеет только подмножество функций, которыми обладают оригинальные версии SLIME / swank. SLIME существует для всех основных вариантов Common Lisp. Это частичный порт для Scheme48. Некоторые частичные реализации доступны в каталоге contrib.
Если вы знаете, что swank уже запущен на порту, используйте slime-connect. Если вы просто хотите использовать слизь в проекте, вам подойдут swank-clojure-project и lein swank.
Насколько я понимаю, slime - это часть emacs (клиент), swank - это обычная часть lisp (сервер), swank-clojure - это реализация cljure для swank-сервера, а не оригинал .
swank-clojure.el
устарел. Не используйте это.
Вам нужен slime.el
, и вам необходимо иметь swank-clojure "1.2.1"
в зависимостях вашего разработчика в файле project.clj
. .
Swank - это, по сути, сервер, к которому вы используете slime для подключения из emacs. Он передал из emacs то, что вы хотите запустить процессом Lisp, который он выполняет.
Вы должны использовать M-x slime-connect
для подключения к серверу swank после запуска с lein swank
.
Swank — это серверный аналог таких шикарных клиентов, как emacs SLIME и среда разработки MCLIDE lisp для Macintosh. Swank-серверы существуют для многих реализаций Common Lisp и диалектов Lisp, таких как Clojure и Gambit/scheme.