Что именно делает «swank-clojure» и есть ли у нас «swank-SOMETHING_ELSE»?

Мое поверхностное понимание состоит в том, что 'swank-clojure' делает возможным «Mx slime-connect». Я имею в виду, что это дает подключение к серверу clojure что-то вроде 'lein swank'. Правильно ли мое понимание? Если нет, то какова цель swank?

Тогда есть ли swank-SOMETHING_ELSE для других реализаций, подобных lisp? Например, swank-clisp?

Нужно ли мне «swank-clojure» для использования SLIME / Clojure с «Mx slime»?

ДОБАВЛЕНО

Я нашел эту ссылку довольно полезной.

14
задан prosseek 24 August 2010 в 05:18
поделиться

4 ответа

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.

32
ответ дан 1 December 2019 в 06:53
поделиться

Насколько я понимаю, slime - это часть emacs (клиент), swank - это обычная часть lisp (сервер), swank-clojure - это реализация cljure для swank-сервера, а не оригинал .

1
ответ дан 1 December 2019 в 06:53
поделиться

swank-clojure.el устарел. Не используйте это.

Вам нужен slime.el , и вам необходимо иметь swank-clojure "1.2.1" в зависимостях вашего разработчика в файле project.clj . .

Swank - это, по сути, сервер, к которому вы используете slime для подключения из emacs. Он передал из emacs то, что вы хотите запустить процессом Lisp, который он выполняет.

Вы должны использовать M-x slime-connect для подключения к серверу swank после запуска с lein swank .

6
ответ дан 1 December 2019 в 06:53
поделиться

Swank — это серверный аналог таких шикарных клиентов, как emacs SLIME и среда разработки MCLIDE lisp для Macintosh. Swank-серверы существуют для многих реализаций Common Lisp и диалектов Lisp, таких как Clojure и Gambit/scheme.

2
ответ дан 1 December 2019 в 06:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: