2012-08-09 16 views
6

A menudo me encuentro iniciando un proceso de larga ejecución desde el REPL y luego me gustaría poder seguir utilizando el REPL para otras tareas mientras se estaba ejecutando. ¿Puedo usar limo para hacer de fondo el hilo actual o iniciar un nuevo hilo de control REPL? También sería correcto iniciar un búfer REPL adicional.¿Puedo fondo un hilo en funcionamiento en el Slime (Swank Emacs)

Respuesta

2

Editar:

Hm, de alguna manera logré perder la etiqueta Clojure en su pregunta. Me sorprendería mucho si la siguiente solución funcionara para Clojure, ya que, como probablemente sabrá, la comunidad Clojure desafortunadamente (al menos para aquellos de nosotros que usamos Clojure y CL) mantiene su propia versión de Slime. No eliminaré la respuesta, porque podría ser útil para los programadores de CL que buscan esta funcionalidad.

A menos que haya una solución similar para Clojure, lo que permite múltiples REPLs multiplexados en un solo zócalo, podría tal vez sólo inicia un segundo servidor Swank con la mano (desde el buffer *inferior-lisp*) y conectarse a él a través de slime-connect como una solución. (No se puede probar esta ATM, desde que se dejó de usar limo con Clojure hace un tiempo.)


¿Usted intentó el contrib slime-mrepl? No he utilizado realmente yo mismo, pero una prueba rápida trabajado para mí bajo CCL/Win/Emacs 24.

he comprobado como esto: M-x slime, introduzca (sleep 10) en el REPL, búfer alternativo, M-x slime-new-mrepl.

2

Por favor, perdónenme por una respuesta algo trillada y no limosa; en la parte superior funcionará con cualquier clojure REPL.

Cuando sé de antemano que estoy comenzando una tarea de larga ejecución desde el REPL, entonces comienzo el cálculo usando future y compruebo con future-done? antes de desencajarlo.

+0

sigue siendo útil, incluso si no es directamente la respuesta a esta quietud, gracias –

1

esto podría no responde a su pregunta, pero podría ser útil para darse cuenta de que mientras (slime-communication-style) es :spawn, las evaluaciones hechas usando C-x C-e siempre generar su propio hilo y se puede ejecutar en paralelo a lo que está sucediendo en el hilo REPL. La salida (desde println etc.) aparecerá en el búfer REPL.

Cuestiones relacionadas