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 и предоставляет проект Mx swank-clojure, который позволяет запускать swank в проекте lein.
Следует отметить, что SLIME зародился на Common Lisp (и все еще активно развивается для него). Фактически, порт clojure для swank имеет только подмножество функций, которыми обладали оригинальные версии SLIME / swank. SLIME существует для всех основных вариантов Common Lisp. Это частичный порт для Scheme48. Некоторые частичные реализации доступны в каталоге contrib.
Если вы знаете, что swank уже запущен на порту, используйте slime-connect. Если вы просто хотите использовать слизь в проекте, вам подойдут swank-clojure-project и lein swank.
person
Community
schedule
23.08.2010