Articulo de referencia

LIMO

Helmut Eller"},"released":{"wt":"mid-2003"},"latest release version":{"wt":"{{wikidata|property|edit|reference|P348}}"},"latest release date":{"wt":"{{start date and age|{{wikid...

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:

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

  1. "Versión 2.32" . 8 de diciembre de 2025. Consultado el 10 de diciembre de 2025 .
  2. 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."
  3. La extensión Alive para VSCode: https://github.com/nobody-famous/alive-lsp/
  4. CIDER se basa originalmente en Slime: https://docs.cider.mx/cider/
  5. "swank-js" . GitHub . Consultado el 5 de marzo de 2025 .
  6. https://github.com/slime/slime/blob/master/contrib/slime-scheme.el
  7. https://www.nongnu.org/geiser/
  8. https://github.com/slime/slime/blob/master/contrib/swank-kawa.scm
  9. "swankr" . Archivado del original el 4 de marzo de 2011. Consultado el 11 de septiembre de 2012 .
  10. "slime/contrib/swank.rb en master · slime/slime" . GitHub . Consultado el 5 de marzo de 2025 .
  11. https://github.com/slime/slime/blob/master/contrib/swank-mit-scheme.scm
  12. https://slime.common-lisp.dev/doc/html/Connecting-to-a-remote-lisp.html#Connecting-to-a-remote-lisp
  • 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