Эквивалент 'lein swank' другим реализациям Lisp / Scheme с emacs / slime - PullRequest
4 голосов
/ 23 августа 2010

Я использовал emacs / slime для кодирования lisp, но с Clojure я нашел 'lein swank'. Я должен сказать, что это довольно полезно, так как я могу подключиться к серверу, на котором работает clojure.

Как насчет других реализаций Lisp? Какие реализации Lisp обеспечивают эквивалент 'lein swank' в Clojure? Я имею в виду, есть ли другие реализации Lisp, которые обеспечивают подключение к серверу, так что я использую M-x slime-connect, а не просто M-x slime?

Ответы [ 4 ]

4 голосов
/ 23 августа 2010

Бэкэндам, не являющимся clojure swank, не нужен эквивалент lein swank, поскольку они могут просто запустить экземпляр lisp и изменить его путь загрузки во время выполнения, чтобы он работал для данного проекта. Этот подход не работает с Clojure, поскольку путь к классу JVM не может быть изменен во время выполнения.

2 голосов
/ 24 августа 2010

Я не знаю насчет clisp, но это то, что у меня есть для SBCL.Это также сосуществует с моей настройкой clojure swank.Я не использую ELPA и вместо этого имею полностью ручную настройку.

(add-to-list 'load-path "~/src/slime")
(require 'slime)
(add-to-list 'slime-lisp-implementations '(sbcl ("/usr/local/bin/sbcl")))
(setq slime-default-lisp 'sbcl)

У меня есть скомпилированный SBCL вручную.Я вижу swank backend для CLISP в кодовой базе SLIME CVS, поэтому я предполагаю, что замена slime-default-lisp и slime-lisp-реализаций на clisp, вероятно, будет просто работать.

lein swank в основном существует для запуска порта swankна конкретный проект.Это необходимо, потому что пути к классам JVM не могут быть изменены во время выполнения.Итак, мы запускаем java с classpath, установленными для каталогов и зависимостей нашего проекта, используя lein swank или swank-clojure-project.С CL это не требуется, поскольку имена путей могут быть изменены во время выполнения.

Я разместил полный файл конфигурации по адресу: http://github.com/vu3rdd/dotfiles

Я буду рад помочь настроить полностьюручная настройка emacs / slime / swank.

1 голос
/ 23 августа 2010

Вы можете загрузить swank вручную в CL и запустить сервер (слизь / swank были созданы для CL в конце концов).

0 голосов
/ 17 февраля 2012

Запустите реализацию Lisp, загрузите Swank (например, через Quicklisp ) и запустите swank:create-server:

CL-USER(1): (ql:quickload "swank")
;; ...
CL-USER(2): (swank:create-server)
;; Swank started at port: 4005.
4005

Если вы хотите указать другой порт, вы можете сделать это с помощью ключевого аргумента :port:

CL-USER(3): (swank:create-server :port 4123)
;; Swank started at port: 4123.
4123

Обратите внимание, что поскольку протокол имеет тенденцию меняться между версиями, вам необходимо убедиться, что вы не используете сильно отличающиеся версии SLIME и Swank. Для Common Lisp я склонен использовать версии из Quicklisp, помещая что-то вроде следующего в мой .emacs, в зависимости от версии SLIME, доступной в настоящее время в Quicklisp:

(add-to-list 'load-path "~/quicklisp/dists/quicklisp/software/slime-20111105-cvs")
(add-to-list 'load-path "~/quicklisp/dists/quicklisp/software/slime-20111105-cvs/contrib")
...