Эквивалент «Лейна Узкая» к другим реализациям Lisp / схема с Emacs / Slime

StackOverflow https://stackoverflow.com/questions/3548169

Вопрос

Я использовал 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")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top