Что делает "swank- clojure", и у нас есть "swank-SOMETHING_ELSE"?

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

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

Нужно ли "swank- clojure" использовать SLIME/Clojure с "M-x slime"?

ADDED

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

Ответы

Ответ 1

SLIME и swake образуют архитектуру клиентского сервера для запуска и отладки программ lisp. SLIME является интерфейсом emacs, а swank - основой. Между ними создается сетевой сокет и обмениваются сообщениями (S-выражения). Короче говоря, это просто механизм RPC между emacs и фактическим бэкендом lisp.

Тот факт, что слизь и шик являются отдельными, связаны по сети и обмениваются сообщениями rpc, означает, что они могут быть где угодно. Таким образом, слизь может подключаться к удаленному хосту/порту, чтобы ошеломлять. Все остальные формы, которые вы видите (lein swank и т.д.), Делают то же самое. Они начинают опускаться на порт, позволяя удаленное соединение слизи.

swank- clojure - это порт w121 > swank. первоначально swank- clojure появился с вспомогательным elisp файлом под названием swank- clojure.el. Задача этого файла состояла в том, чтобы включить ручную настройку параметров swank, таких как classpaths, jvm parameters и т.д. Так как позже появились другие инструменты, такие как lein, swank-clojure.el был устаревшим. Но он по-прежнему живет в: http://github.com/vu3rdd/swank-clojure-extra и предоставляет проект Mx swank- clojure, который позволяет запускать swank в проекте lein.

Следует отметить, что SLIME возникла (и продолжает активно развиваться) Common Lisp. Infact, порт clojure имеет только подмножество функций, которыми пользуются оригинальные версии SLIME/swank. SLIME существует для всех основных вариантов Common Lisp. Для Схемы48 есть частичный порт. В каталоге contrib есть некоторые частичные реализации.

Если вы знаете, что swank уже запущен на порту, используйте slime-connect. Если вы просто хотите использовать слизь в проекте, swank- clojure -project и lein swank, похоже, идут по пути.

Ответ 2

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

Вам нужно slime.el, и вы должны иметь swank-clojure "1.2.1" в своих dev-dependcies в вашем файле project.clj.

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

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

Ответ 3

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

Ответ 4

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