SLIME , el Modo de Interacción Superior de Lisp para Emacs , es un modo de Emacs para desarrollar aplicaciones en Common Lisp . SLIME tiene su origen en un modo de Emacs llamado SLIM, escrito por Eric Marsden. Luke Gorrie y Helmut Eller lo desarrollan como un proyecto de software de código abierto y dominio público [ 2 ] . Más de 100 desarrolladores de Lisp han contribuido con código a SLIME desde que el proyecto se inició en 2003.
SLIME sigue una arquitectura cliente-servidor, utilizando un backend llamado Swank que se carga en Common Lisp. En ese sentido, es similar al Language Server Protocol (LSP) , al que precede. Algunos editores de Common Lisp utilizan un cliente LSP para Common Lisp. [ 3 ]
SLIME funciona con las principales implementaciones de Common Lisp, tales como:
- Lisp común del Banco de Acero (SBCL)
- Clozure CL (anteriormente OpenMCL)
- LispWorks
- Allegro Common Lisp
- CLISP
- Common Lisp integrable (ECL)
- Lisp común del oso armado (ABCL)
Otros lenguajes de programación pueden aprovechar SLIME con un complemento de editor, o tener complementos inspirados en SLIME:
Características
SLIME ofrece la experiencia de un Entorno de Desarrollo Integrado . Una vez que SLIME se carga en el editor y el backend Swank se carga en la imagen Common Lisp en ejecución, todas las interacciones se realizan en tiempo real, de forma interactiva, "comunicándose" con el programa en ejecución y añadiendo funciones de forma incremental.
SLIME proporciona:
- autocompletado de código
- Compilación de código (compila la función en un punto, una región, un archivo o un proyecto).
- Notas de compilación resaltadas en el búfer de origen y recopiladas en un búfer dedicado.
- evaluación de código
- búsqueda de documentación
- un inspector de objetos interactivo
- definición de hallazgo
- Un potente depurador interactivo que permite al programador inspeccionar la pila de llamadas, corregir y recompilar una función mientras el depurador está abierto y la ejecución está en pausa, para luego reanudar la ejecución desde cualquier punto de la pila.
- el uso de reinicios en el depurador
- un motor paso a paso
- expansión macro
- indentación macro automática
- Referencias cruzadas: encuentra quién llama a una función o macro, quién establece un símbolo, quién depende de un símbolo, quién hace referencia a uno, quién especializa un método, quién expande una macro
- manipular objetos a través de "presentaciones"
- exportación automática de símbolos
- Llamando a la función en el punto en el REPL
- comandos de acceso directo (imprimir el directorio de trabajo actual, buscar e instalar un paquete Quicklisp, etc.)
- una instalación de rastreo
- comandos de desensamblaje
Uso remoto
SLIME, junto con el backend Swank, permite conectarse a un programa Lisp en ejecución en otra máquina. [ 12 ]
Esto permite al programador inspeccionar el programa en ejecución, cambiar parámetros o incluso cargar y compilar código nuevo, actualizando así el sistema sin interrupciones.
Referencias
- ↑ "Versión 2.32" . 8 de diciembre de 2025. Consultado el 10 de diciembre de 2025 .
- 1 2 Slime en github.com "Licencia SLIME es software libre. Todos los archivos, a menos que se indique explícitamente lo contrario, son de dominio público."
- ↑ La extensión Alive para VSCode: https://github.com/nobody-famous/alive-lsp/
- ↑ CIDER se basa originalmente en Slime: https://docs.cider.mx/cider/
- ↑ "swank-js" . GitHub . Consultado el 5 de marzo de 2025 .
- ↑ https://github.com/slime/slime/blob/master/contrib/slime-scheme.el
- ↑ https://www.nongnu.org/geiser/
- ↑ https://github.com/slime/slime/blob/master/contrib/swank-kawa.scm
- ↑ "swankr" . Archivado del original el 4 de marzo de 2011. Consultado el 11 de septiembre de 2012 .
- ↑ "slime/contrib/swank.rb en master · slime/slime" . GitHub . Consultado el 5 de marzo de 2025 .
- ↑ https://github.com/slime/slime/blob/master/contrib/swank-mit-scheme.scm
- ↑ https://slime.common-lisp.dev/doc/html/Connecting-to-a-remote-lisp.html#Connecting-to-a-remote-lisp
Enlaces externos
- Página del proyecto SLIME
- Uso de Emacs como IDE en el libro de recetas de Common Lisp.
- El nacimiento de SLIME en la lista de correo cmucl-imp (agosto de 2003)
- Presentación de SLIME por Tobias Rittweiler (2008). Archivada el 27 de septiembre de 2011 en Wayback Machine.
- Reseña de SLIME por Andy Wingo
- "Consejos y técnicas para hacer slime" de Bill Clementson - Parte 1 (Véase también la Parte 2 , la Parte 3 , la Parte 4 , la Parte 5 , la Parte 6 y la Parte 7 )
- El libro "SLIME Refactoring" de Bill Clementson describe cómo configurar SLIME.
- "Emacs Keymaps and the SLIME scratch buffer" de Bill Clementson
- El libro "CL, Music and SLIME Tutorials" de Bill Clementson contiene un buen tutorial sobre SLIME.
- Configuración de SLIME de Marco Baringer (gurú del SLIME)
- "Edición de código Lisp con Emacs" de Marco Baringer
- Los archivos de desarrollo de slime
- Swank actualizado para MIT/GNU Scheme para usar con SLIME CVS
- Software Common Lisp (lenguaje de programación)
- Emacs
- Software libre programado en Lisp.
- Entornos de desarrollo integrados gratuitos
- Scheme (lenguaje de programación)
- Software de dominio público con código fuente
- Herramientas de programación informática