Эквивалент «Лейна Узкая» к другим реализациям Lisp / схема с Emacs / Slime
Вопрос
Я использовал Emacs / Slime для кодирования Lisp, но с Clojure я нашел «Лейна Уванкта». Я должен сказать, что это довольно полезно, так как я могу подключиться к серверу, который запускает Clojure.
Как насчет других реализаций Lisp? Какие реализации LISP предоставляют эквивалент «Лейна Уванкта» в Clojure? Я имею в виду, есть ли другие реализации Lisp, которые предоставляют подключение к серверу, чтобы я использовал «MX Slime-Connect», а не просто «Slime MX»?
Решение
Non-Clojure Swank Divends Не нужен лейн Swank Equivalent, поскольку они могут просто запустить экземпляр LISP и изменить свой нагрузка во время выполнения, чтобы он работал для данного проекта. Этот подход не работает с CLOJURE, так как класса JVM не может быть изменена во время выполнения.
Другие советы
Я не знаю о клипсе, но это то, что у меня для SBCL. Эта совместно существует с моим нажатием Swank Clojure. Я не использую 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 для Creish в кодовой базе Slime CVS, поэтому, я думаю, изменяя Slime-default-lisp и lisk-lisp-реализует для клипа, вероятно, просто будет работать.
Лейн Swank в основном существует для запуска Swank Port на конкретном проекте. Это необходимо, потому что классные пути JVM не могут быть изменены во время выполнения. Итак, мы начнем Java с классовыми патматами, установленными нашим каталогам и зависимостям проекта, используя Lein Swank или Swank-Clojure-Project. С CL, это не нужно, так как Pathnames может быть изменен во время выполнения.
Я опубликовал полный файл конфигурации по адресу: http://github.com/vu3rdd/dotfiles.
Буду рад помочь создать полностью ручную настройку Emacs / Slime / Swank.
Вы можете загрузить Swank вручную в CL и запустить сервер (Slime / Swank были созданы для CL в конце концов).
Огоньте реализацию 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
Обратите внимание, что поскольку протокол имеет тенденцию к изменению между версиями, вам необходимо убедиться, что вы не используете дико разные версии слизи и Swank. Для общих Lisp я склонен использовать версии из QuickLisp, поместив что-то вроде в следующий .emacs
, В зависимости от версии слизи, доступной в настоящее время в 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")