Pregunta

He estado usando emacs / lisp limo para la codificación, pero con Clojure encontré 'Lein Swank'. Debo decir que es bastante útil, ya que se puede conectar a un servidor que ejecuta clojure.

¿Qué hay de las otras implementaciones Lisp? ¿Qué implementaciones Lisp son el equivalente a 'Lein Swank' en Clojure? Es decir, ¿hay alguna otras implementaciones de Lisp que proporcionan conectividad de servidor, de modo que yo uso 'x M-limo-conectar', no sólo 'M-x slime'?

¿Fue útil?

Solución

No-clojure Swank backends no necesita un Lein Swank equivalentes ya que sólo puede iniciar una instancia de Lisp y cambiar su ruta de carga en tiempo de ejecución para hacer que funcione para un proyecto determinado. Este enfoque no funciona con Clojure desde la ruta de clase de la JVM no se puede modificar en tiempo de ejecución.

Otros consejos

No sé sobre clisp, pero esto es lo que tengo para SBCL. Este coexiste con mi configuración clojure Swank también. No utilizar el ELPA y en lugar de tener una configuración completamente manual.

(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)

Tengo una mano compilado SBCL. Veo un backend Swank para CLISP en el limo CVS base de código, así que supongo, el cambio de limo-default-Lisp y limo-Lisp implementaciones a CLISP seguro es que le acaba de trabajo.

Lein Swank existe principalmente para el inicio de puerto Swank en un proyecto en particular. Esto es necesario porque las rutas de clases JVM no se pueden modificar en tiempo de ejecución. Por lo tanto, comenzamos con las rutas de clases de Java establecidos a nuestros directorios de proyectos y dependencias utilizando Swank Lein o Swank-clojure-proyecto. Con CL, esto no es necesario, como nombres de ruta pueden ser modificados durante el tiempo de ejecución.

He publicado el archivo de configuración completo en: http://github.com/vu3rdd/dotfiles

I estará encantado de ayuda para configurar un emacs totalmente manuales / limo / Swank configuración.

Se puede cargar manualmente Swank en la CL e iniciar el servidor (limo / Swank se creó en el CL después de todo).

Fuego hasta la implementación de Lisp, carga Swank (a través de Quicklisp , por ejemplo), y correr swank:create-server:

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

Si desea especificar un puerto diferente, puede hacerlo utilizando el argumento de palabra clave :port:

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

Tenga en cuenta que dado que el protocolo tiende a cambiar entre las versiones, es necesario asegurarse de que no está utilizando completamente diferentes versiones de fango y Swank. Para Common Lisp, que tienden a utilizar las versiones de Quicklisp poniendo algo como lo siguiente en mi .emacs, dependiendo de la versión de baba actualmente disponibles en 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")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top